说明
del语句作用在变量上,而不是数据对象上del删除的是变量,而不是数据__del__是个特殊方法,它不会销毁实例无论手动del还是等Python自动GC,都会调用到__del__
例子
class A:
def __init__(self
):
print("__init__() ")
def __del__(self
):
print("__del__()")
a
= A
()
b
= a
del a
print("***********")
>__init__
()
>***********
>__del__
()
注意看输出结果, __del__()是在调用print()之后打印的,这是为什么呢?
手动调用 __del__() 方法,该方法也不会立即执行Python 采用自动引用计数(简称 ARC)的方式实现垃圾回收机制每当遇到 del x, Python 会将 x 的引用数减1, 当 x 的引用数减到0时就会调用 x.__del__()