str與repr 改變物件的字串顯示

2022-05-06 06:12:07 字數 1019 閱讀 8345

1

class

foo:

2 num = 334

def__init__

(self, name, age):

5 self.name =name

6 self.age =age78

def__str__(self): #

自己定製列印資訊

9return

'新的自定製顯示的方法名字是%s 年齡是%s

' %(self.name, self.age)

1011

def__repr__(self): #

如果找不到str方法,就會去找__repr__方法

12return

'這是定製的'#

該方法也可以在直譯器裡面顯示

1314

15 f1 = foo('

小白', 28)

16print(f1) #

觸發str(f1)----->f1.__str__() 相當於以前的len()是執行的__len__()方法

17 a = str(f1) #

驗證print(f1) 就是執行str(f1)

18print

(a)19 b = f1.__str__() #

驗證print(f1) 就是執行str(f1)

20print

(b)21

print

(f1)

22輸出:

23新的自定製顯示的方法名字是小白 年齡是28

24新的自定製顯示的方法名字是小白 年齡是28

25新的自定製顯示的方法名字是小白 年齡是28

26新的自定製顯示的方法名字是小白 年齡是28

27新的自定製顯示的方法名字是小白 年齡是28

28 新的自定製顯示的方法名字是小白 年齡是28

如果__str__ 沒有被定義,就會找到__repr__     retrun必須返回字串,否則會丟擲異常

列印物件 str 和 repr

當列印乙個類的例項時,返回的字串是物件的位址資訊,如 main student object at 0x109afb310 很不好看 可通過在類內定義 str 這樣列印例項時就會返回乙個好看的字串,而且容易看出例項內部重要的資料 定義 str class student object def ini...

str與repr的區別

python列印值的時候會保持該值在python 中的狀態,不是使用者所希望看到的狀態。而使用print列印值則不一樣,print列印出來的值是使用者所希望看到的狀態。例如 hello,world hello,world python列印出來的值是給python理解的,這裡python理解為字串,所...

字串轉換 repr 與 str

1.預設情況下在直譯器中檢視cat物件和列印物件 class cat object def init self,color self.color color.my cat cat yellow my cat main cat object at 0x000001c35dd2e320 print my...