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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值