美文网首页
__repr__和__str__使用

__repr__和__str__使用

作者: 知识分子中的文盲 | 来源:发表于2016-07-19 23:15 被阅读41次

    内建函数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'
    '''

    相关文章

      网友评论

          本文标题:__repr__和__str__使用

          本文链接:https://www.haomeiwen.com/subject/pscvjttx.html