当一个Python对象要被系统回收时,系统会自动调用该对象的_del_方法。
Python使用自动引用计数(ARC)来回收对象所占用的内存,当一个对象的引用计数为0后,说明程序中不再需要该对象,Python就会自动回收该对象。
class test:
def __init__(self,name,age):
self.age = age
self.name = name
def __del__(self):
print("使用_del_方法")
t = test("zhou",30)
a = t
del t
print("程序将要结束")
上面的代码中,定义了2个变量引用对象,即使del了一个变量,该对象的引用计数依旧不是0,所以_del_方法在程序的最后被执行,打印结果为:
程序将要结束
使用_del_方法
如果我们尝试将a = t 这行注释掉,则会发现,由于del变量t后,该对象的引用计数为0,所以在程序结束前,就执行了_del_方法