在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)来解决问题。