1 类的定义
类定义的语法如下所示。
class 类名():
代码
......
我们可以创建一个洗衣机类Washer,并为他添加一个方法。
class Washer():
def wash(self):
print('我会洗⾐服')
其中,self表示当前正在调用的对象,python中所有的属性都需要通过self.属性的方式调用,以免与同名的形参混淆。
2 创建对象
对象名 = 类名()
其中类名中也可以带参数,但必须与类定义中重写的__init__方法参数相同,在此可以暂时简单的认为__init__是类的构造方法。
haier1 = Washer()
# <__main__.Washer object at 0x0000018B7B224240>
print(haier1)
# haier对象调⽤实例⽅法
haier1.wash()
3 添加和获取实例属性
添加属性有2种方法
3.1 在__init__方法中定义
class Bird():
def __init__(self):
self.weight=10
self.height=10
3.2 在调用对象时定义(在外部定义)
class Bird():
pass
bird1=Bird()
bird1.weight=10
bird1.height=10
4 __init__方法
init方法在对象创建的时侯会进行调用,且它的形参需要和创建对象时的参数数量相同,当然我们也可以在类的内容手动调用init方法。
class Dog():
def __init__(self):
self.color="White"
#方法参数self代表当前对象
def bark(self):
print(f'I\'m a terrible {self.color} dog !!')
dog1=Dog()
dog1.bark()
I'm a terrible White dog !!
5 __str__方法
__str__就等价于java中的toString方法,在该方法中需要返回一个字符串,表示对该类的对象进行打印时输出的内容。
class Cat():
def __init__(self):
self.color="Black"
cat1=Cat()
print(cat1)
<__main__.Cat object at 0x0000023FFDB8A128>
如果类中没有重写__str__方法,打印对象时输出的是对象的内存地址。
class Cat():
def __init__(self):
self.color="Black"
def __str__(self):
return "a " + self.color + " cat"
cat1=Cat()
print(cat1)
a Black cat
而对__str__方法进行重写后,则可以打印出我们想要的内容。
6 __del__方法
__del__方法类似于析构方法,在类被销毁的时候被调用,而我们可以按需求对他进行重写。
class Human():
def __init__(self):
self.name="MaBaoGuo"
def __del__(self):
print(self.name+"已经被摧毁了!!")
scl=Human()
#不执行该语句,等程序运行结束,对象还是会被销毁,__del__也会自动执行
del scl
MaBaoGuo已经被摧毁了!!