在 Python 的内置数字类型(、、、和)上是否相同,repr
或者是否存在(深奥?)两者可能产生不同结果的情况?str
int
bool
float
complex
关于 SO 的相关问题(例如这个)集中在如何__repr__
以及__str__
可能以不同的方式实现,并为字符串返回不同的值,但我在数字的实际实现中找不到任何东西。
在 Python 的内置数字类型(、、、和)上是否相同,repr
或者是否存在(深奥?)两者可能产生不同结果的情况?str
int
bool
float
complex
关于 SO 的相关问题(例如这个)集中在如何__repr__
以及__str__
可能以不同的方式实现,并为字符串返回不同的值,但我在数字的实际实现中找不到任何东西。
您的主要信息来源是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
.