2012-11-20 7 views
5

repr और str समान निर्मित सांख्यिक प्रकार (int, bool, float, और complex) अजगर पर कर रहे हैं, या वहाँ (गूढ़?) स्थितियों में, जहां दो अलग-अलग परिणाम हो सकता है कर रहे हैं? पर इतना (जैसे this one) कैसे __repr__ और __str__ अलग ढंग से लागू किया जा सकता है और तार के लिए अलग मान, लेकिन मैं नंबर पर वास्तविक क्रियान्वयन पर कुछ भी नहीं मिल रहा है पर ध्यान केंद्रित करनेक्या repr और str हमेशा पायथन पर समान संख्यात्मक प्रकार के समान हैं?

संबंधित प्रश्न।

+0

प्रश्न डुप्लिकेट के रूप में बंद कर दिया गया था, लेकिन लिंक्ड पोस्ट मेरे प्रश्न का उत्तर नहीं देता है, जो विशेष रूप से 'int', 'bool',' float', और '' __repr__' और '__str__' विधियों के बारे में है। complex'। – gerrit

उत्तर

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_reprfloat_str से अलग है और sys.float_repr_style पर निर्भर करता है।

संबंधित मुद्दे