標籤:網路 erro elf trace not day 需要 ast ***
一.內建方法二
1.__del__方法:
a:構造方法:建立一個空間, 析構方法;釋放一個空間;
b:觸發del的情況:Python解譯器的記憶體回收機制,和遇到 del 對象名
c:析構方法的思想:
class A: def __del__(self): print(self)a = A()del a #這裡先執行了__del__方法,再刪除對象a,因為執行__del__方法時還要傳入self;print(a)#輸出結果:<__main__.A object at 0x0000013CF5F59128> 被執行了Traceback (most recent call last): File "D:/Python/course/23.模組/day23/3.析構方法.py", line 49, in <module> print(a)NameError: name ‘a‘ is not defined
d:python的記憶體回收機制:
class A: def __del__(self): print(‘Python解譯器會在程式跑結束後執行我‘)a = A()print(a)#輸出結果:<__main__.A object at 0x000001F823159128>Python解譯器會在程式跑結束後執行我
總結:del方法:是去歸還/釋放一些在建立對象時借用的一些資源(有可能是作業系統的資源)
例子:像一些常用的變數在Python底層的一些對象,都有Python解譯器幫你回收,
而像一些像作業系統借用的資源就需要你執行回收方法自己釋放;
像檔案控制代碼;執行close操作,還有一些網路資源;
3.電腦內部執行一些小常識:
a:申請一塊空間 作業系統會分配給你的 b:在這一塊空間之內的所有事,歸你的Python解譯器管理;
*****所以在你借用了作業系統資源時,在程式結束之前要還回去,在del方法中寫關閉代碼;
Python_021(內建方法講解二)