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