आधिकारिक पायथन दस्तावेज कहता है कि __repr__() किसी वस्तु के "आधिकारिक" स्ट्रिंग प्रतिनिधित्व की गणना करने के लिए उपयोग किया जाता है। repr() बिल्ट-इन फ़ंक्शन ऑब्जेक्ट को प्रदर्शित करने के लिए __repr__() का उपयोग करता है। __repr__() ऑब्जेक्ट का प्रिंट करने योग्य प्रतिनिधित्व देता है, जो इस ऑब्जेक्ट को बनाने के संभावित तरीकों में से एक है। __repr__() डेवलपर्स के लिए अधिक उपयोगी है जबकि __str__() अंतिम उपयोगकर्ताओं के लिए है।
उदाहरण
निम्न कोड दिखाता है कि __repr__() का उपयोग कैसे किया जाता है।
class Point: def __init__(self, x, y): self.x, self.y = x, y def __repr__(self): return 'Point(x=%s, y=%s)' % (self.x, self.y) p = Point(3, 4) print p
आउटपुट
यह आउटपुट देता है
Point(x=3, y=4)
repr() फ़ंक्शन के उपयोग के एक और उदाहरण पर विचार करें और एक डेटाटाइम ऑब्जेक्ट बनाएं -
>>> import datetime >>> today = datetime.datetime.now()
जब मैं आज प्रदर्शित करने के लिए बिल्ट-इन फ़ंक्शन repr() का उपयोग करता हूं -
>>> repr(today) 'datetime.datetime(2012, 3, 14, 9, 21, 58, 130922)'
हम देख सकते हैं कि यह एक स्ट्रिंग लौटाता है लेकिन यह स्ट्रिंग डेटाटाइम ऑब्जेक्ट का "आधिकारिक" प्रतिनिधित्व है जिसका अर्थ है कि इस "आधिकारिक" स्ट्रिंग प्रतिनिधित्व का उपयोग करके हम ऑब्जेक्ट का पुनर्निर्माण कर सकते हैं -
>>> eval('datetime.datetime(2012, 3, 14, 9, 21, 58, 130922)') datetime.datetime(2012, 3, 14, 9, 21, 58, 130922)
eval() बिल्ट-इन फ़ंक्शन एक स्ट्रिंग को स्वीकार करता है और इसे डेटाटाइम ऑब्जेक्ट में परिवर्तित करता है।