__str__是在str()函数被使用,或是在print函数打印一个对象的时候才被调用的,并且它返回的字符串对终端用户更友好。

如果只想实现这两个特殊方法中的一个,__repr__是更好的选择,因为如果一个对象没有__str__函数,而Python又需要调用它的时候,解释器会用__repr__作为替代。

__repr__和__str__这两个方法都是用于显示的,__str__是面向用户的,而__repr__面向程序员。

打印操作会首先尝试__str__和str内置函数(print运行的内部等价形式),它通常应该返回一个友好的显示。

__repr__用于所有其他的环境中:用于交互模式下提示回应以及repr函数,如果没有使用__str__,会使用print和str。它通常应该返回一个编码字符串,可以用来重新创建对象,或者给开发者详细的显示。

当我们想所有环境下都统一显示的话,可以重构__repr__方法;当我们想在不同环境下支持不同的显示,例如终端用户显示使用__str__,而程序员在开发期间则使用底层的__repr__来显示,实际上__str__只是覆盖了__repr__以得到更友好的用户显示。

python中repr_python中__str__和__repr__的区别相关推荐

  1. python中魔法方法repr_python中魔法方法__str__与__repr__的区别

    提出问题 当我们自定义一个类时,打印这个类对象或者在交互模式下直接输入这个类对象按回车,默认显示出来的信息好像用处不大.如下所示 In [1]: classPeople: ...:def __init ...

  2. python中魔法方法__str__与__repr__的区别

    提出问题 当我们自定义一个类时,打印这个类对象或者在交互模式下直接输入这个类对象按回车,默认显示出来的信息好像用处不大.如下所示 In [1]: class People: ...: def __in ...

  3. python的class的__str__和__repr__(转)

    本文参考自: https://stackoverflow.com/questions/18393701/the-difference-between-str-and-repr?noredirect=1 ...

  4. python中repr_Python中的repr()函数

    Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数. 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式. 在python的官方AP ...

  5. python的class的__str__()和__repr__()函数

    repr(object) 返回一个可以用来表示对象的可打印字符串 首先,尝试生成这样一个字符串,将其传给 eval()可重新生成同样的对象  否则,生成用尖括号包住的字符串,包含类型名和额外的信息(比 ...

  6. python中 str 和 repr_Python中__str__和 __repr__

    __str__, __repr__ 是python类中的两个魔术方法,前者是在类实例当作字符串时调用,后者通常给程序员调试信息时给输出,都可以直接显示类信息.__repr__ = __str__,简单 ...

  7. python中的repr_python中的 __repr__和__str__

    __repr__,被内置函数repr用于把一个对象用"官方"的字符串形式表示出来(终端友好) 1.值传给eval()来返回一个对象的字符串表示形式 2.否则返回一个尖括号括起来的字 ...

  8. python中__str__与__repr__

    (1)背景 python中,对于类(自定义类)的实例对象的默认显示既没有太大用处,也不美观.比如: 1 class adder: 2 def __init__(self,value=0): 3 sel ...

  9. python中与0xf2相等的是_python中__str__与__repr__

    (1)背景 python中,对于类(自定义类)的实例对象的默认显示既没有太大用处,也不美观.比如: 1 classadder:2 def __init__(self,value=0):3 self.d ...

最新文章

  1. 10.1引用数据类型的转换
  2. Maven报错Missing artifact jdk.tools:jdk.tools:jar:1.7--转
  3. 吊打 Tomcat ,Undertow 性能很炸!!
  4. HDU 6741 MUV LUV UNLIMITED (博弈论)
  5. 丹鸟快递承诺达到不了怎么办_谈谈2019年快递行业的竞争
  6. Hadoop初级之Hadoop基本概念与应用前景
  7. 一次失败的项目经理招聘经验
  8. gtx1660是什么级别的_GTX1660Ti到底属于什么系列?Nvidia一句话定性了
  9. eclipse简单使用
  10. 对比学习(Contrastive Learning)在CV与NLP领域中的研究进展
  11. HashMap之HashMap中hashSeed(hash种子)的作用分析
  12. 计算机技术与软件考试高级难么,计算机技术与软件专业技术资格考试高级哪个好考...
  13. 免费可商用图片网站合集
  14. Vmware workstation 安装教程
  15. session自动登录抽屉网(自动携带cookie)
  16. 从Altium官方网站下载库文件
  17. blackscholes matlab,基于MATLAB的Black-Scholes-Merton欧式期权定价模型的计算研究
  18. 2015年动漫电影观影指南值得收藏
  19. 这个Q版卡通头像生成器,太符合程序员形象了
  20. python 筛选 加字段_如何显示/隐藏显示在筛选中的字段,按选择分组?

热门文章

  1. linux卸载oneinstack,centos中安装oneinstack遇到的问题总结
  2. 一、Python3运维自动化运维——psutil 模块详解(超级详细)
  3. 4.0 内核文件系统-kernel部分
  4. 六层板层叠结构设计方案
  5. 常见GPU卡精度支持一览表
  6. Python实现JD京东授权后物流轨迹查询接口(对接青龙系统对外开放接口)
  7. (四)Linux环境搭建dubbo
  8. JAVA SE 专栏——类和对象
  9. 用PHP开发企业Wifi网络Web认证系统(附源码)
  10. 猜歌小游戏多功能组合微信小程序源码下载