面向对象(封装、继承、多态)
领取Python学习资料可以加小编的微信:tz2020jd
类中: ①特征被称为属性;②行为被称为方法;③三要素:类名、属性、方法;
dir函数可以查看对象的所有方法;
dir显示的方法中,__方法名__
格式的方法是Python
提供的内置方法/属性
;
类中的方法第一个参数必须是self(类似Java中的this?);
创建第一个类:
class Cat:
def eat(self):
print("小猫爱吃鱼!")
def drink(self):
print("小猫爱喝水!")
tom = Cat() # 和Java不同,不需要使用 new
tom.eat()
tom.drink()
print(tom) # 输出对象变量
print("%x" % id(tom)) # 输出16进制的地址
print("%d" % id(tom)) # 输出10进制的地址
输出:
引用的强调
Python如果不想修改类,可以直接给对象增加属性(不同于其他语言!)(这种方式不推荐);
self关键字(Java中的this关键字): 哪一个对象调用的这个方法,self就是哪个对象的引用,可以通过self.访问对象的属性和方法;
初始化方法__init__:
当使用类名()创建对象时,会自动执行以下操作:
①. 为对象在内存中分配空间 – 创建对象;
②. 为对象的属性 设置初始值 – 初始化方法(init);
这个初始化方法就是__init__方法,__init__是对象的内置方法。
__init__方法是专门用来定义一个类具有哪些属性的方法!
在初始化方法__init__内部定义属性:
在init方法内部使用self.属性名 = 属性的初始值就可以定义属性;
定义属性之后,再使用该类创建的对象,都拥有该属性;
使用:
class Cat:
def __init__(self):
print("这是一个初始化方法")
self.name = "Tom"
def eat(self):
print("%s 爱吃鱼" % self.name)
tom = Cat()
print(tom.name)
tom.eat()
输出:
这是一个初始化方法
Tom
Tom 爱吃鱼
初始化方法__init__中带参数,构造对象;
class Cat:
def __init__(self, new_name):