5

在 Python 的内置数字类型(、、、和)上是否相同,repr或者是否存在(深奥?)两者可能产生不同结果的情况?strintboolfloatcomplex

关于 SO 的相关问题(例如这个)集中在如何__repr__以及__str__可能以不同的方式实现,并为字符串返回不同的值,但我在数字的实际实现中找不到任何东西。

4

1 回答 1

3

您的主要信息来源是http://hg.python.org/cpython/file/tip/Objects 例如,在boolobject.c

PyTypeObject PyBool_Type = {
    ...stuff...

    bool_repr,                                  /* tp_repr */

    ...stuff...

    bool_repr,                                  /* tp_str */

所以是的,它们保证是相同的。

对于浮点数,float_repr不同于float_str并取决于sys.float_repr_style.

于 2012-11-20T10:59:20.640 回答