【问题标题】:What is the difference between __repr__ and repr?__repr__ 和 repr 有什么区别?
【发布时间】:2020-08-25 03:32:20
【问题描述】:

为什么 __repr__ 有效而 repr 在字典返回时无效?

类人: 名称 = "" 年龄 = 0

def __init__(self, personName, personAge):
    self.name = personName
    self.age = personAge

def __repr__(self):
    return {'name':self.name, 'age':self.age}

p = Person('Pankaj', 34)

打印(p.__repr__())

打印(repr(p))

输出:

{'name': 'Pankaj', 'age': 34}

Traceback(最近一次调用最后一次):

...

print(repr(p))

TypeError: __repr__ 返回非字符串(字典类型)

【问题讨论】:

    标签: dictionary repr


    【解决方案1】:

    阅读下面的内容,我认为选项 2 返回一个对象,选项 1 是一个字符串。

    官方 Python 文档说 repr() 用于计算对象的“官方”字符串表示。 repr() 内置函数使用 repr() 来显示对象。 repr() 返回对象的可打印表示,这是创建此对象的可能方式之一。

    https://www.tutorialspoint.com/What-does-the-repr-function-do-in-Python-Object-Oriented-Programming

    print 调用 str 还是 repr? str() 以用户可以理解的日期和时间的方式显示今天的日期。 repr() 打印日期时间对象的“官方”表示(意味着使用“官方”字符串表示我们可以重建对象)。

    https://www.geeksforgeeks.org/str-vs-repr-in-python/

    【讨论】:

    • tutorialspoint.com/… 中,它说:“__repr__() 用于计算对象的“官方”字符串表示...... __repr__() 返回对象的可打印表示”(第 1 段.) 好像不太清楚。
    • As "repr() 内置函数使用__repr__() 来显示对象。"在第一个引用中,repr & __repr__ 应该有相同的结果。
    猜你喜欢
    • 2019-04-26
    • 2012-10-04
    • 2013-08-25
    • 2010-10-02
    • 2011-12-12
    • 2010-09-16
    • 2012-03-14
    • 2012-02-06
    • 2011-02-25
    相关资源
    最近更新 更多