我正在查看Python文档中的内置对象方法,并且对的文档感兴趣object.__repr__(self)。它说的是:
object.__repr__(self)
由repr()内置函数和字符串转换(反引号)调用以计算对象的“正式”字符串表示形式。如果可能的话,这应该看起来像一个有效的Python表达式,可用于重新创建具有相同值的对象(在适当的环境下)。如果无法做到这一点,则应返回格式为<…一些有用的说明…>的字符串。返回值必须是一个字符串对象。如果一个类定义了 repr ()而不是 str (),则当需要该类实例的“非正式”字符串表示形式时,也使用 repr ()。 这通常用于调试,因此重要的是,表示内容应信息丰富且明确
由repr()内置函数和字符串转换(反引号)调用以计算对象的“正式”字符串表示形式。如果可能的话,这应该看起来像一个有效的Python表达式,可用于重新创建具有相同值的对象(在适当的环境下)。如果无法做到这一点,则应返回格式为<…一些有用的说明…>的字符串。返回值必须是一个字符串对象。如果一个类定义了 repr ()而不是 str (),则当需要该类实例的“非正式”字符串表示形式时,也使用 repr ()。
这通常用于调试,因此重要的是,表示内容应信息丰富且明确
对我来说最有趣的部分是…
如果可能的话,这应该看起来像一个有效的Python表达式,可用于重新创建具有相同值的对象
…但是我不确定这到底意味着什么。它说,它应该 看起来 像它可以用于重建对象的表达式,但这是否意味着它应该仅仅是那种你可以使用表达式的例子,或者它应该是一个实际的表达,可以执行(EVAL等。)重新创建对象?还是……纯粹是出于纯粹的信息目的而对使用的实际表达方式进行了修改?
总的来说,我对应该在此处输入的内容有些困惑。
>>> from datetime import date >>> >>> repr(date.today()) # calls date.today().__repr__() 'datetime.date(2009, 1, 16)' >>> eval(_) # _ is the output of the last command datetime.date(2009, 1, 16)
输出是可以由python解释器解析的字符串,并导致一个相等的对象。
如果无法实现,则应以的形式返回字符串<...some useful description...>。
<...some useful description...>