__repr__和__str__使用

内建函数str()和repr() (representation,表达,表示)或反引号操作符(``)可以方便地以字符串的方式获取对象的内容、类型、数值属性等信息。

  • str()函数得到的字符串可读性好(故被print调用)
  • repr()函数得到的字符串通常可以用来重新获得该对象,通常情况下 obj==eval(repr(obj)) 这个等式是成立的。

这两个函数接受一个对象作为其参数,返回适当的字符串。
事实上repr()和``做一样的事情,返回一个对象的“官方”字符串表示。其结果绝大多数情况下(不是所有)可以通过求值运算(内建函数eval())重新得到该对象。
str()则不同,它生成一个对象的可读性好的字符串表示,结果通常无法用eval()求值,但适合print输出。
如下例:

class D(object):
... def str(self):
... return "a str"
... def repr(self):
... return "a repr"
...
dr = D()
print dr
a str
dr
a repr
"%s" % dr
'a str'
"%r" % dr
'a repr'
'''

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近项目当中要用python来实现一些功能,于是就抓紧时间学习了一下python,顺便将学习过程当中的一些知识点记...
    橘座大人阅读 3,899评论 0 1
  • 第三章 EVAL标记法 3.1 导引 在进一步深入学习Lisp之前,我们必须切换到一个更加适合的标记法,EVAL标...
    geoeee阅读 7,176评论 0 5
  • 年轻的小姑娘哟,你掉的是这个金姐妹呢,还是这个银姐妹呢,还是这个铁姐妹呢? 文丨一醉猫 -1- 一阵敲打声将我从沉...
    醉猫知改改阅读 4,272评论 19 8
  • 想择一处山水间定所。 白日里,炊烟伴酒,山林放歌。 迟暮时,江灯照影,烛息书合。 袖口乘不进二两风,眼底望不及半轮...
    小熊秋秋阅读 4,536评论 1 0
  • 2017-01-15 小人缺钱,君子缺德。君子能看到自己缺德,缺得厉害,缺得着急,所以时时刻刻要克己复礼,修德笃行...
    郁萍阅读 10,087评论 1 1