python之對象回收機制


  1. python中,當程序執行完畢之后,python的垃圾回收機制就會將所有對象回收,清除占用的內存

請看如下代碼

 1 class Parent():
 2     def __init__(self,name):
 3         self.name=name
 4         print('this is Parent_init')
 5 
 6     def __del__(self):
 7         print('回收父類對象...')
 8 
 9 
10 class Child(Parent):
11     def __init__(self,name,age):
12         super().__init__(name)
13         self.age=age
14         print('this is Child_init')
15 
16     def __del__(self):
17         print('回收子類對象....')
18 
19 #測試
20 ch=Child('Jane',23)
21 fc=Parent('Rounie')
22 #輸出
23 this is Parent_init
24 this is Child_init
25 this is Parent_init
26 回收子類對象....
27 回收父類對象...

解釋:上面定義了兩個類父類Parent和子類Child,子類繼承父類。執行測試的兩行代碼,創建了兩個對象,一個子類對象ch,一個父類對象fc。因為類中顯式定義了類的內置函數__del__()函數,所以python垃圾回收機制會調用各自__del__()函數完成對對象的回收。當然,如果不顯式定義__del__()函數,執行完程序后,系統會自動調用類的內置函數__del__()完成對對象的回收。

   2、對象再引用的回收機制

通過類的內置__del__()來回收,不管內置__del__()有沒有被顯式實現

3、對象引用的回收機制
__del__()如果被顯式實現,對象回收則通過顯式__del__()來回收,如果沒有被顯式實現,則調用內置__del__()來回收


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM