del 命令的效果
使用 del v
从范围中删除变量名称,或使用 del v[item]
或 del[i:j]
从集合中删除对象,或使用 del v.name
删除属性,或以任何其他方式删除对象的引用,都不会触发任何析构函数调用或任何内存自由自在。仅当对象的引用计数达到零时才会销毁对象。
>>> import gc
>>> gc.disable() # disable garbage collector
>>> class Track:
def __init__(self):
print("Initialized")
def __del__(self):
print("Destructed")
>>> def bar():
return Track()
>>> t = bar()
Initialized
>>> another_t = t # assign another reference
>>> print("...")
...
>>> del t # not destructed yet - another_t still refers to it
>>> del another_t # final reference gone, object is destructed
Destructed