del 语句和垃圾回收
a = [1,2,3] # 声明变量后,引用计数 +1
b = a # 增加一个引用,引用计数 +1
c = b # 增加一个引用,引用计数 +1
del a # 删除a这个指针,引用计数 -1
当计数器保存的值为0的时候,也就是意味着没有任何指针指向这块存储。解释器开始清除这块没有任何指针的存储。
垃圾回收魔法函数
__del__
可以添加该对象被垃圾回收时的逻辑。
class A:
def __del__(self):
print("开始回收了")
a = A()
b = a
c = b
del a
del b
del c
>>> 开始执行`del c`时打印`开始回收了`