__init__
是类(class)和对象的构造函数,__del__
是类和对象生命周期结束时自动调用的方法,__call__
是对象被调用的默认方法。
测试:
class foo():
def __init__(self) -> None:
print("init")
def __call__(self) -> None:
print("call")
def __del__(self) -> None:
print('del')
print('--------')
foo()
print('--------')
f=foo()
print('--------')
f()
print('--------')
输出:
--------
init
del
--------
init
--------
call
--------
del
由以上测试可知,直接调用类相当于调用 __init__
方法,随即生命周期便结束,自动调用__del__
方法。
实例化对象也会调用__init__
方法,对对象的调用相当于使用__call__
函数,当程序结束后,对象的生命周期才会结束。