析构方法
此方法一般无须定义,因为Python是一门高级语言,程序员在使用时无需关心内存的分配和释放,因为此工作都是交给Python解释器来执行,所以,析构函数的调用是由解释器在进行垃圾回收时自动触发执行的。
示例代码
"模拟open的函数,可以使用析构方法,释放内存,关闭打开的文件"
class Open:
def __init__(self,filepath,mode="r",encode="utf-8"):
self.f = open(filepath,mode=mode,encoding=encode)
def write(self):
pass
def __getattr__(self, item):
return getattr(self.f,item)
def __del__(self):
print("--->del")
self.f.close()
f = Open("a.txt","w")
del f #关闭文件,释放内存