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() 函数的示例,并创建一个 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 对象。
广告