析構方法
此方法一般無須定義,因為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 #關閉文件,釋放內存