문제

Are repr and str identical on Pythons built-in numeric types (int, bool, float, and complex), or are there (esoteric?) situations where the two may yield different results?

Related questions on SO (such as this one) focus on how __repr__ and __str__ may be implemented differently, and return different values for strings, but I can't find anything on the actual implementation on numbers.

도움이 되었습니까?

해결책

Your primary source of information on this is http://hg.python.org/cpython/file/tip/Objects For example, in boolobject.c:

PyTypeObject PyBool_Type = {
    ...stuff...

    bool_repr,                                  /* tp_repr */

    ...stuff...

    bool_repr,                                  /* tp_str */

so yes, they're guaranteed to be the same.

For floats, float_repr is different from float_str and depends on sys.float_repr_style.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top