面向对象(五)-魔法方法
魔法方法
定义:以双下划线开头和结尾的方法,这些方法不允许开发者自己定义
特点:不需要显式的调用,每一个魔法方法都具有特定的触发时机
目前说过的魔法方法
__init__():对象创建完成后,对对象初始化时会调用__new__():创建对象的时候,会调用__str__():直接打印某个对象时候,会调用__repr__():直接打印某个对象时候,会调用
1 构造和初始化方法

2 比较运算符

3 算术运算符

4 复合运算符

5、对象打印

6、其他方法

class A:
def __call__(self):
print("对象被调用")
return 10
def __del__(self):
print("对象被销毁")
# 情况1
a = A()
del a #删除对象a,此时没有其他对象引用,会自动调用__del__()
# 情况2
a = A()
a2 = a # 赋值
del a # 删除对象a,此时还有a2对象引用,不会自动调用__del__()
# 情况3
a = A()
a2 = A()
del a
print('================')
""" 结果:
对象被销毁 ===================== 对象被销毁 """
# 情况4
a = A()
print(a()) # 调用__call__ 10

浙公网安备 33010602011771号