对象所有引用彻底消除后进行预设的操作
del方法
class Dog:
def __del__(self):
print('--------对象清除----------')
dog1 = Dog()
dog2 = dog1
del dog1 #此时并不会调用del方法
print('-----------1------------')
del dog2 #dog1对象彻底清除,此时调用del方法
print('-----------2------------')
>>>
-----------1------------
--------对象清除---------
-----------2------------
引用计数
import sys
sys.getrefcount() #返回结果比实际大1
- 使用例
import sys
class T:
pass
t = T() #创建一个对象
tt = t #指向新对象t
count1 = sys.getrefcount(t)
print(count1)
del tt
count2 = sys.getrefcount(t)
print(count2)
>>> 3
2