पिछले उत्तरों पर निर्माण और कुछ और उदाहरण दिखाते हुए। यदि ठीक से उपयोग किया जाता है, तो बीच का अंतर strऔर reprस्पष्ट है। संक्षेप reprमें, एक स्ट्रिंग को लौटाया जाना चाहिए जिसे ऑब्जेक्ट की सटीक स्थिति को फिर से बनाने के लिए कॉपी-पेस्ट किया जा सकता है, जबकि परिणामों के strलिए loggingऔर observingडीबग करना उपयोगी है । कुछ ज्ञात पुस्तकालयों के लिए अलग-अलग आउटपुट देखने के लिए यहां कुछ उदाहरण दिए गए हैं।
दिनांक और समय
print repr(datetime.now())
print str(datetime.now())
strजहां के रूप में एक लॉग फ़ाइल, में मुद्रित करने के लिए अच्छा है reprयदि आपने इसे सीधे चलाने के लिए या एक फ़ाइल में आदेशों के रूप में यह डंप करना चाहते सोद्देश्य हो सकता है।
x = datetime.datetime(2017, 12, 12, 18, 49, 27, 134411)
Numpy
print repr(np.array([1,2,3,4,5]))
print str(np.array([1,2,3,4,5]))
Numpy में reprफिर से सीधे उपभोज्य है।
कस्टम वेक्टर 3 उदाहरण
class Vector3(object):
def __init__(self, args):
self.x = args[0]
self.y = args[1]
self.z = args[2]
def __str__(self):
return "x: {0}, y: {1}, z: {2}".format(self.x, self.y, self.z)
def __repr__(self):
return "Vector3([{0},{1},{2}])".format(self.x, self.y, self.z)
इस उदाहरण में, reprफिर से एक स्ट्रिंग देता है जिसे सीधे उपभोग / निष्पादित किया जा सकता है, जबकि strडिबग आउटपुट के रूप में अधिक उपयोगी है।
v = Vector3([1,2,3])
print str(v)
print repr(v)
एक बात का ध्यान रखें, अगर strपरिभाषित नहीं है repr, लेकिन strस्वचालित रूप से कॉल करेगा repr। इसलिए, कम से कम परिभाषित करना हमेशा अच्छा होता हैrepr