在 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 对象。
广告