魔法方法中的 str 和 repr

2022-03-19 10:07:23 字數 761 閱讀 3689

__str__(self):

class test1():

def __str__(self):

return 'i am __str__' #return即返回什麼列印什麼

>>>a #__str__直接例項化物件名,會列印其位址

<main.test1 object at 0x0000025e39348088>

>>>print(a) #__str__若print,則會列印出其返回內容

i am __str__

__repr__(self):

class test1():

def __repr__(self):

return 'i am __str__' #return即返回什麼列印什麼

>>>a #__repr__直接例項化物件名,會列印 其返回內容

i amrepr>>>print(a) #__repr__若print,則會列印出其返回內容

i am __str__

綜上所述,有:

__str__:直接變數名則輸出記憶體位址,若print則輸出返回內容

__repr__: 直接變數名輸出返回內容,若print則輸出返回內容

python魔法方法中的str和repr使用和區別

很多時候我們自己編寫乙個類,在將它的例項在終端上列印或檢視的時候,我們往往會看到乙個不太滿意的結果。所以,我們可能會手動列印物件的一些屬性或者是在類裡自己實現乙個方法來返回我們需要的資訊。class car def init self,color self.color color def str s...

物件導向 魔法方法 str

class hero object 定義了乙個英雄類,可以移動和攻擊 def init self,name,skill,hp,atk,armor init 方法,用來做變數初始化 或 賦值 操作 英雄名 self.name name 例項變數 技能 self.skill skill 生命值 self...

python類方法中str和repr的區別

str存在的意義是為了列印出便於檢視的內容,所以str應該是易於檢視的。可以理解是為了讓使用者檢視,用來了解物件的狀態的。repr存在的意義是準確的描述物件,所以repr方法應該是無歧義的。可以理解是為了讓程式設計師檢視,用來對程式進行修改的,所以必須是無歧義的。在這裡舉乙個可能有歧義的例子 foo...