python 魔法函数(二) __str__()和__repr__()

函数str() 会调用__str__(),用于将值转化为适于人阅读的形式

函数repr() 会调用__repr__(),用于将值转化为解释器读取的形式

所以print展示的都是str的格式

__repr__() 会返回和调用者有关的 “类名+object at+内存地址”信息

 test.py

class People(object):

    def __new__(cls,*args,**kwargs):
        print("People::__new__()")
        return super().__new__(cls)

    def __init__(self,name,age):
        print("People::__init__()",name,age)
        self.name = name
        self.age = age


    def __str__(self):
        return self.name + ":" + str(self.age)

    def __repr__(self):
        return "hello world"

a = People("sandy",100)

 上边是 __str__  和  __repr__同时存在的情况下

如果只有__str__

 

如果只有__repr__

 通过上边分析得出,如果需要调用__str__()而又不存在,它会去调用__repr__(),如果需要调用__repr__()而又不存在,它不会去调用__str__()。。。

解析器能读的 人肯定也能读,但是人能读的 解析器就不一定能读。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值