str與repr控制輸出

class Foo:
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def __str__(self):
        return 'my name is %s age is %s'%(self.name,self.age)
f1 = Foo('lele',18)
print(f1)#str(f1)--->f1.__str__()
    def __repr__(self):
        return 'my name is %s age is %s' % (self.name, self.age)
        #return 1#會報錯
f1 = Foo('yibole',19)
print(f1)#repr(f1)---->f1.__repr__()

在解釋器中如果使用repr輸入f1,就會輸出my name is yibole age is 19

repr和str都是用來控制輸出的

str又用在print時可以使用,repr可以用在解釋器中使用

如果兩個同時存在,print調用的本質就是去調用str,並不是優先級前後的關係,如果沒有str,print就回去尋找str方法,因爲找不到,所以去運行了repr方法

str和retr不能return非字符串類型的內容,例如上例中的return 1,會報錯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章