Python中的常見特殊方法 del方法

2021-09-25 06:37:16 字數 1044 閱讀 1792

__del__() 方法用於銷毀python物件——在任何python物件將被系統**的時候,系統都會自動呼叫這個方法。但是不要以為對乙個變數執行del操作,該變數引用的物件就會被**,當然不是,如果有多個變數引用它,del其中乙個變數是不會**該物件的。

栗子如下:

1

#coding=utf-8

2class

item:

3def

__init__

(self,name,price):

4 self.name=name

5 self.price=price

6def

__del__

(self):

7print('

del方法刪除物件')

8#建立乙個item物件,將之賦值給it變數

9 it = item('

滑鼠',29.8)

10 x =it11#

列印it所引用的item物件

12del

it13

print('

----------

')

控制台列印如下:

解釋:第6、7行**重寫了item類的__del__() 方法,當系統將要**item時,系統會自動呼叫item物件的__del__() 方法。上面的程式先建立了乙個item物件並將該物件賦值給變數it,第10行**又將it賦值給x,所以程式中有兩個變數引用了item物件,然後程式執行del it 刪除it物件,此時由於還有變數引用該item物件,因此程式並不會**item物件。所以會看到如上面的輸出結果,為什麼會這樣?因為del it 之後,程式並沒有**item物件,只有等到程式即將結束時(系統必須**所有物件),系統才會**item物件。如果將第10行**注釋,列印如下:

解釋:注釋之後,當程式執行del it ,此時程式中不再有任何變數引用item物件,因此系統會立即**該物件,不需要等到程式結束前。

Python中的常見特殊方法 repr方法

在python中有些方法名 屬性名的前後都新增了雙下劃線,這種方法 屬性通常都屬於python的特殊方法和特殊屬性,開發者可以通過重寫這些方法或者直接呼叫這些方法來實現特殊的功能。其實前面見過的構造方法 init 就是一種特殊方法,開發者可以通過重寫類中的 init 方法實現自己想要的初始化邏輯。p...

Python常見的特殊方法

一 重寫 repr 方法 類的自我描述方法 當列印物件時,系統會根據 repr 方法輸出物件的自我描述資訊,用來告訴外界該物件具有的狀態資訊 class rectangle def init self,width,height self.width width self.height height ...

python類中的特殊方法

python類特殊方法 方法功能說明 new 類的靜態方法,用於確定是否建立物件 init 建構函式,生成物件時呼叫 del 析構函式,釋放物件時呼叫 add sub mul truediv floordiv mod pow repr 列印,轉換 setitem 按照索引賦值 getitem 按照索...