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

2021-10-09 13:27:53 字數 1303 閱讀 1615

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

python類中的特殊方法、特殊屬性有些需要開發者重新寫,有些則可以直接呼叫。

栗子:

1 #coding=utf-8

2 class item():

3 def __init__(self,name,price):

4 self.name=name

5 self.price=price

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

7 it = item('滑鼠',29.8)

8 #列印it所引用的item物件

9 print(it)

列印如下:

解釋:上面程式建立了item物件,然後使用print() 方法輸出item 物件。

執行程式之後可能出現不同的輸出結果:at後面的16位十六進製制數字可能發生改變。it本來是item的乙個例項物件,但是為什麼輸出的是這樣的字串?這就是因為有__repr__()方法,控制台列印的其實是__repr__()方法的返回值。所以說列印it 或者是列印 im.__repr__()效果是一樣的。

1. __repr__()方法是object類提供的方法,而所有的python類都是object類的子類,因此所有的python物件都具有__repr__() 方法。所以如果需要將任何物件與字串進行連線時,都可先呼叫__repr__()方法將物件轉為字串,再將字串連線在一起。

2. __repr__()之所以特殊,是因為它是乙個「自我描述」的方法,該方法通常實現場景是:當開發人員直接列印該物件時,系統將會輸出該物件的「自我描述」資訊,用來告訴外界該物件具有的狀態資訊。

3. object類提供的__repr__()方法總是返回該物件實現類的「類名+object at + 記憶體位址 」值,這個返回值並不能真正實現「自我描述」的功能,因此如果使用者需要自定義類能實現「自我描述」的功能,就必須重寫__repr__()方法。

大部分時候,重寫__repr__() 方法總是返回該物件令人感興趣的資訊所組成的字串。通常可返回如下格式的字串:

類名[field1=值1,field2=值2,...]

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

del 方法用於銷毀python物件 在任何python物件將被系統 的時候,系統都會自動呼叫這個方法。但是不要以為對乙個變數執行del操作,該變數引用的物件就會被 當然不是,如果有多個變數引用它,del其中乙個變數是不會 該物件的。栗子如下 1 coding utf 8 2class item 3...

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 按照索...