【Python基礎程式設計212 ● 面向物件 ● 面向物件案例:烤紅薯】
阿新 • • 發佈:2020-07-31
---------Python基礎程式設計---------
Author : AI菌
【內容講解】
1.__del__()是一個魔法方法,del前有兩個橫線,後也有兩個橫線
2.這個方法,當物件被刪除時,會自動被呼叫
【程式碼實現】
class Student: # 初始化方法,建立完物件後會自動被呼叫 def __init__(self, name): print('__init__方法被呼叫') self.name = name # 當物件被刪除時,會自動被呼叫 def __del__(self): print("__del__方法被呼叫") print("%s 被幹掉了..." % self.name) # 建立物件 s1 = Student("robot") # 刪除物件,自動呼叫__del__()方法 print("%d 被刪除1次" % id(s1)) del s1 print("--" * 10) # 當有變數儲存了一個物件的引用時,此物件的引用計數就會加1; # 當使用del() 刪除變數指向的物件時,則會減少物件的引用計數; # 如果物件的引用計數不為1,那麼會讓這個物件的引用計數減1; # 當物件的引用計數為0的時候,則物件才會被真正刪除(記憶體被回收)。 s2 = Student("rabbit") # s2的引用計數為1 a1 = s2 # s2的引用計數為2 a2 = s2 # s2的引用計數為3 print("%d 被刪除1次" % id(s2)) del s2 # s2的引用計數減1,為2 print("%d 被刪除1次" % id(a1)) del a1 # s2的引用計數減1,為1 # 引用計數為0的時候,物件會被真正刪除 # 此時呼叫__del__()方法 print("%d 被刪除1次" % id(a2)) del a2 # s2的引用計數減1,為0
【執行結果】
__init__方法被呼叫 3158148617048 被刪除1次 __del__方法被呼叫 robot 被幹掉了... -------------------- __init__方法被呼叫 3158148618448 被刪除1次 3158148618448 被刪除1次 3158148618448 被刪除1次 __del__方法被呼叫 rabbit 被幹掉了...
【往期精彩】
▷【Python基礎程式設計196 ● 讀取檔案的4種方式】
▷【Python基礎程式設計197 ● 讀取檔案的4種方式】
▷【Python基礎程式設計198 ● 讀取檔案的4種方式】
▷【Python基礎程式設計199 ● Python怎麼讀/寫很大的檔案】
▷【Python基礎程式設計201 ● 讀取檔案的4種方式】
▷【Python基礎程式設計202 ● 讀取檔案的4種方式】
▷【Python基礎程式設計203 ● 讀取檔案的4種方式】
【加群交流】