1. 程式人生 > 實用技巧 >五.析構方法 __del__

五.析構方法 __del__

五.析構方法 __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      # 刪除物件之前我關閉了檔案,哈哈