Python_021(內建方法講解二)

來源:互聯網
上載者:User

標籤:網路   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(內建方法講解二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.