面向对象(五)-魔法方法
魔法方法
定义:以双下划线开头和结尾的方法,这些方法不允许开发者自己定义
特点:不需要显式的调用,每一个魔法方法都具有特定的触发时机
目前说过的魔法方法
__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