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


官方 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() 函数的示例,并创建一个日期时间对象 −

>>> 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 对象。

更新于: 15-Jun-2020

625 浏览量

[span class="text-yellow-400"]开启您的职业生涯[/span]

完成课程以获得认证

立即开始
广告