在Python的对象中,也存在构造函数(__init__
)和析构析构函数(__del__
)。这里简单说一下Python的析构函数的机制。
在Python中定义下面一个类
class A:
def __init__(self):
print("initialization")
def my_print(self):
print("my_print")
def __del__(self):
print("delete")
运行时,通过下面这样的赋值:
>>>a1 = A()
initialization
>>>a2 = a1
>>>a3 = a1
在Python中,如果只对 a1 进行析构del a1
,那么对象并没有被析构掉,只有将对象和引用都析构,才会调用析构函数。
>>>del a1
>>>del a2
>>>del a3 //a1 a2 a3 顺序无要求
delete
如果这里有:
>>>a1 = A()
initialization
>>>a2 = a1
>>>a3 = a1
>>>a4 = a1.my_print()
>>>>del a1
>>>del a2
>>>del a3
delete
>>>a4
>>>
这时候 a4 存在,但返回类型为 ‘NoneType’。