五.析構方法 __del__
阿新 • • 發佈:2020-12-30
五.析構方法 __del__
前面我們學了 __init__
這個構造方法, 在例項物件的時候自動觸發, 也叫初始化, 而析構方式是在執行 del
物件的時候, 也就是在物件被清理之前自動觸發 __del__
的執行, 那麼我們就可以在這方法裡面進行一些操作, GC操作時觸發的就是 __del__
1.__def__的使用場景
- 一般用來進行回收系統資源的操作
- 如果一個物件僅僅佔用應用程式的資源時, 垃圾回收機制會自動回收應用程式所被佔用的資源
- 當物件涉及到申請了作業系統的資源, 比如 open打開了檔案, 或者與網路連線等, GC無法派上用場, 那麼就需要我們重寫一下
__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 # 刪除物件之前我關閉了檔案,哈哈