2012-11-20 7 views
5

Czy repr i str identyczne pyton wbudowanych typów numerycznych (int, bool, float i complex), albo są tam ezoteryczne (?) Sytuacje, w których dwa mogą dawać różne wyniki?Czy repr i str są zawsze identyczne na typach wbudowanych w Pythony?

Podobne pytania na SO (takich jak this one) naciskiem na jak __repr__ i __str__ mogą być realizowane w różny sposób, i zwracać różne wartości dla ciągów, ale nie mogę znaleźć nic na temat rzeczywistej realizacji na liczbach.

+0

Pytanie zostało zamknięte jako duplikat, ale związane post nie jest odpowiedź na moje pytanie, co jest konkretnie o '' __str__' __repr__' i metod dotyczących 'int',', 'float' bool' i' kompleks ". – gerrit

Odpowiedz

3

Twoim głównym źródłem informacji na ten temat jest http://hg.python.org/cpython/file/tip/Objects Na przykład w boolobject.c:

PyTypeObject PyBool_Type = { 
    ...stuff... 

    bool_repr,         /* tp_repr */ 

    ...stuff... 

    bool_repr,         /* tp_str */ 

więc tak, są one gwarancją samo.

Dla pływaków, float_repr różni się od float_str i zależy od sys.float_repr_style.

Powiązane problemy