1. 程式人生 > >Python_021(內置方法講解二)

Python_021(內置方法講解二)

most def bsp efi trac pan div () python

一.內置方法二

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(內置方法講解二)