Python object .__ repr __(self)应该是表达式吗?

发布于 2021-01-29 15:12:04

我正在查看Python文档中的内置对象方法,并且对的文档感兴趣object.__repr__(self)。它说的是:

由repr()内置函数和字符串转换(反引号)调用以计算对象的“正式”字符串表示形式。如果可能的话,这应该看起来像一个有效的Python表达式,可用于重新创建具有相同值的对象(在适当的环境下)。如果无法做到这一点,则应返回格式为<…一些有用的说明…>的字符串。返回值必须是一个字符串对象。如果一个类定义了
repr ()而不是 str (),则当需要该类实例的“非正式”字符串表示形式时,也使用 repr ()。

这通常用于调试,因此重要的是,表示内容应信息丰富且明确

对我来说最有趣的部分是…

如果可能的话,这应该看起来像一个有效的Python表达式,可用于重新创建具有相同值的对象

…但是我不确定这到底意味着什么。它说,它应该 看起来
像它可以用于重建对象的表达式,但这是否意味着它应该仅仅是那种你可以使用表达式的例子,或者它应该是一个实际的表达,可以执行(EVAL等。)重新创建对象?还是……纯粹是出于纯粹的信息目的而对使用的实际表达方式进行了修改?

总的来说,我对应该在此处输入的内容有些困惑。

关注者
0
被浏览
63
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。
    >>> 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...>



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看