__del__
前面我们学了 __init__
这个构造方法, 在实例对象的时候自动触发, 也叫初始化, 而析构方式是在执行 del
对象的时候, 也就是在对象被清理之前自动触发 __del__
的执行, 那么我们就可以在这方法里面进行一些操作, GC操作时触发的就是 __del__
__del__
的功能class Test:
def __del__(self):
print("删除对象, 触发了我")
T = Test()
del T # 删除对象, 触发了我
class Open:
def __init__(self):
self.f = open("test26.py","rt",encoding="utf-8") # 打开了一个文件
def __del__(self):
self.f.close() # 触发执行的时候, 关闭文件(系统资源的回收)
print("删除对象之前我关闭了文件,哈哈")
O = Open()
del O # 删除对象之前我关闭了文件,哈哈
原文:https://www.cnblogs.com/songhaixing/p/14210829.html