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,会报错

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