बिल्ट-इन फंक्शन्स 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() एक अनौपचारिक प्रतिनिधित्व देता है जो पठनीय हो सकता है लेकिन हमेशा अस्पष्ट नहीं हो सकता।