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

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)'

我们可以看到它返回了一个字符串,但是该字符串是日期时间对象的“官方”表示形式,这意味着使用该“官方”字符串表示形式,我们可以重构该对象-

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

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