Python基础 2.2 面向对象1

2.2 面向对象,类和魔术方法

2.2.1 面向对象和面向过程的区别(了解)

1.面向过程

​ 把编程任务划分成一个一个步骤自己亲自去执行,适合中小项目

2.对象

​ 把构成问题的事物分解成各个对象,适合开发大型项目

2.2.2 类和对象

1.类

​ 很多事物存在相同的属性和行为(或者方法),我们描述这些共同属性特征的抽象,就叫类。

类包含:属性(姓名,身高,肤色等) 和 方法(上课,上班等)。

2.对象

​ 对象是类的实例

3. 类和对象的关系

​ 类是对象的模具(不占内存空间),对象是类的实例(占内存空间)。

每个对象都要有对应的类。

2.2.3 面向对象编程

1.定义类和方法(重要)

1 定义类

定义类有2种形式,经典类和新式类,

class 类名:
class 类名():
# 以上俩种为经典类(不推荐用),是py2以前使用的定义。现在py3推荐用新式类
class 类名(Object):
	方法列表(不是列表,指多个函数定义)

object是Python里所有类最顶级父类,类名命名规则按照大驼峰命名

2.定义方法

定义方法格式(实例方法)为

class 类名(object):
	def 方法名(self):
		...

​ 方法的格式类似函数,也可以设置参数和返回值,但是需要设置第一个参数为self

编辑器会自动生成self

2.创建对象和调用方法(重要)

1.创建对象

​ python中,可以根据已经定义的类去创建对象。格式为

对象变量名 = 类名()

我们来打个例子试试看。

class Dog(object):
    def Eat(self):
        print("啃骨头")

    def Drink(self):
        print("喝水")


dog1 = Dog()
print(dog1, type(dog1))

输出

<__main__.Dog object at 0x0000013AE9F979D0> <class '__main__.Dog'>

可以看出来,它是一个对象,是Dog类的一个对象,占了一个内存地址。

2.调用方法

调用格式如下

对象.方法名()

我们之前创建的对象,有了对象就能调用类的方法。

class Dog(object):
    def eat(self):
        print("啃骨头")

    def drink(self):
        print("喝水")


dog1 = Dog()
print(dog1, type(dog1))
dog1.eat()
dog1.drink()
输出
<__main__.Dog object at 0x0000025C26E579D0> <class '__main__.Dog'>
啃骨头
喝水

多个对象创建也是一样的方法。

3.添加和使用属性

学习如何给对象添加属性和使用属性,对象既有实例方法,也要有自己的属性

3.1.定义,添加属性

定义格式

对象变量名.属性名 = 数据

属性和变量类似,首次赋值会定义属性,再次是修改属性。

dog1.age = 3
print(dog1.age)
输出
3
3.2.使用属性
3.3.私有属性

加下划线1道或者2道的都是定义为私有属性,私有属性不能自动访问?

4.self的作用

​ 知道self参数的作用

1.什么是self

​ 在python类规定中,实现方法的第一个参数,是实例对象本身,并且约定俗称,把其名字叫self。

在某个对象调用其方法时,python解释器会自动把这个对象作为第一个参数传递给方法。

​ 也就是说哪个对象调用这个方法,方法中的self参数就是对象自己

class Dog(object):
    def print_info(self):
        print('查看self', id(self))


dog1 = Dog()
print("调用方法前", id(dog1))
dog1.print_info()
print("调用方法后", id(dog1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值