1class
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
(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...