आधिकारिक Python डॉक्यूमेंटेशन के अनुसार, __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() फंक्शन के उपयोग का एक और उदाहरण लें और एक datetime ऑब्जेक्ट बनाएं:
>>> import datetime >>> today = datetime.datetime.now()
जब मैं today को प्रदर्शित करने के लिए बिल्ट-इन फंक्शन repr() का उपयोग करता हूं:
>>> repr(today) 'datetime.datetime(2012, 3, 14, 9, 21, 58, 130922)'
हम देख सकते हैं कि इसने एक स्ट्रिंग लौटाई लेकिन यह स्ट्रिंग datetime ऑब्जेक्ट का "आधिकारिक" प्रतिनिधित्व है जिसका अर्थ है कि इस "आधिकारिक" स्ट्रिंग रिप्रेजेंटेशन का उपयोग करके हम ऑब्जेक्ट को पुनर्निर्माण कर सकते हैं:
>>> eval('datetime.datetime(2012, 3, 14, 9, 21, 58, 130922)')
datetime.datetime(2012, 3, 14, 9, 21, 58, 130922)
eval() बिल्ट-इन फंक्शन एक स्ट्रिंग स्वीकार करता है और इसे datetime ऑब्जेक्ट में बदल देता है।