Python解構函式__del__定義原理解析
阿新 • • 發佈:2020-11-23
解構函式__del__定義:在類裡定義,如果不定義,Python 會在後臺提供預設解構函式。
解構函式__del__呼叫:
A、使用del 顯式的呼叫解構函式刪除物件時:del物件名;
class Foo: def __init__(self,x): self.x=x def __del__(self): #在物件資源被釋放時觸發 print('-----del------') print(self) f=Foo(100000) del f
B、當物件在某個作用域中呼叫完畢,跳出其作用域的同時解構函式也會被呼叫一次,這樣可以用來釋放記憶體空間。
class Foo: def __init__(self,x): self.x=x def __del__(self): #在物件資源被釋放時觸發 print('-----del------') print(self) f=Foo(100000) time.sleep(5) #time.sleep(5)執行完後,自動呼叫__del__()
注意:__del__只是刪除了物件的引用,比如上面del f 只是f物件不再執行例項資料的儲存空間了,例項資料並沒有被刪除,刪除例項資料需要python本身的垃圾回收機制;
垃圾回收機制
Python 採用垃圾回收機制來清理不再使用的物件;Python 提供gc模組釋放不再使用的物件,Python 採用‘引用計數' 的演算法方式來處理回收,
即:當某個物件在其作用域內不再被其他物件引用的時候,Python 就自動清除物件;
Python 的函式collect()可以一次性收集所有待處理的物件(gc.collect())
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。