Skip to content

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`时打印`开始回收了`