अंतर्निहित कार्य repr() और str() क्रमशः object.__repr__(self) और object.__str__(self) विधियों को कॉल करते हैं। पहला फ़ंक्शन ऑब्जेक्ट के आधिकारिक प्रतिनिधित्व की गणना करता है, जबकि दूसरा ऑब्जेक्ट का अनौपचारिक प्रतिनिधित्व देता है।
पूर्णांक वस्तु के लिए दोनों कार्यों का परिणाम समान है।
>>> x = 1 >>> repr(x) '1' >>> str(x) '1'
हालांकि, स्ट्रिंग ऑब्जेक्ट के मामले में ऐसा नहीं है।
>>> x = "Hello" >>> repr(x) "'Hello'" >>> str(x) 'Hello'
स्ट्रिंग ऑब्जेक्ट के repr () के रिटर्न वैल्यू का मूल्यांकन eval () फ़ंक्शन द्वारा किया जा सकता है और परिणाम मान्य स्ट्रिंग ऑब्जेक्ट में होता है। हालांकि, str() के परिणाम का मूल्यांकन नहीं किया जा सकता है।
>>> y1 = repr(x) >>> eval(y1) 'Hello' >>> y2 = str(x) >>> eval(y2) NameError: name 'Hello' is not defined
संक्षेप में। repr() ऑब्जेक्ट का एक डिफ़ॉल्ट और स्पष्ट प्रतिनिधित्व देता है, जहां str() एक अनौपचारिक प्रतिनिधित्व देता है जो पठनीय हो सकता है लेकिन हमेशा स्पष्ट नहीं हो सकता है।