repr() 函数在 Python 面向对象编程中起什么作用?

pythonserver side programmingprogramming

官方 Python 文档称 __repr__() 用于计算对象的"官方"字符串表示。repr() 内置函数使用 __repr__() 显示对象。__repr__() 返回对象的可打印表示,这是创建此对象的可能方法之一。__repr__() 对开发人员更有用,而 __str__() 则适用于最终用户。

示例

以下代码显示了如何使用 __repr__()。

class Point:

   def __init__(self, x, y):

     self.x, self.y = x, y

   def __repr__(self):

     return 'Point(x=%s, y=%s)' % (self.x, self.y)

p = Point(3, 4)

print p

输出

这给出了输出

Point(x=3, y=4)

让我们考虑另一个使用 repr() 函数的例子并创建一个 datetime 对象 −

>>> import datetime
>>> today = datetime.datetime.now()

当我使用内置函数 repr() 显示今天 −

>>> repr(today)
'datetime.datetime(2012, 3, 14, 9, 21, 58, 130922)'

我们可以看到,这返回了一个字符串,但这个字符串是 datetime 对象的“官方”表示,这意味着使用这个“官方”字符串表示,我们可以重建对象 −

>>> eval('datetime.datetime(2012, 3, 14, 9, 21, 58, 130922)')
datetime.datetime(2012, 3, 14, 9, 21, 58, 130922)

eval() 内置函数接受字符串并将其转换为 datetime 对象。


相关文章


有用资源