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

更新日期:2020-06-15

查看次数:621 次

开启您的 职业生涯

通过完成课程获得认证

开始
广告