在Python中,當一個對象不再被引用時,垃圾回收器會自動回收其內存。析構函數在Python中是通過__del__()
方法實現的。當一個對象被銷毀時,__del__()
方法會被自動調用。
下面是一個簡單的例子:
class MyClass:
def __init__(self):
print("Object is created.")
def __del__(self):
print("Object is destroyed.")
obj = MyClass() # 創建一個對象,將輸出 "Object is created."
del obj # 刪除對象,將輸出 "Object is destroyed."
請注意,__del__()
方法并不保證在所有情況下都能被調用。例如,當Python解釋器退出時,可能不會調用析構函數。此外,如果對象引用循環導致垃圾回收器無法回收對象,那么析構函數也不會被調用。在這種情況下,可以使用弱引用(weakref)來解決問題。