>>> x = 'foo'
>>> x
'foo'
तो नाम स्ट्रिंग xसे जुड़ा हुआ है 'foo'। जब आप उदाहरण के repr(x)लिए दुभाषिए को बुलाते हैं तो 'foo'इसके बजाय xपुकारते हैं repr('foo')।
>>> repr(x)
"'foo'"
>>> x.__repr__()
"'foo'"
reprवास्तव में एक जादू प्रणाली को बुलाती है __repr__की xजो देता है, स्ट्रिंग मूल्य के प्रतिनिधित्व युक्त 'foo'करने के लिए सौंपा x। तो यह 'foo'स्ट्रिंग के अंदर लौटता है ""जिसके परिणामस्वरूप "'foo'"। इस पर विचार reprकरना एक स्ट्रिंग देना है जिसमें प्रतीकों की एक श्रृंखला होती है जिसे हम दुभाषिया में टाइप कर सकते हैं और उसी मान को प्राप्त कर सकते हैं जिसे तर्क के रूप में भेजा गया था repr।
>>> eval("'foo'")
'foo'
जब हम कॉल करते हैं eval("'foo'"), तो यह वैसा ही होता है जब हम 'foo'दुभाषिया में टाइप करते हैं। जैसा कि हम सीधे ""दुभाषिया में बाहरी स्ट्रिंग की सामग्री टाइप करते हैं ।
>>> eval('foo')
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
eval('foo')
File "<string>", line 1, in <module>
NameError: name 'foo' is not defined
यदि हम कहते हैं eval('foo'), तो यह वैसा ही है जैसा हम fooदुभाषिया में लिखते हैं । लेकिन कोई fooचर उपलब्ध नहीं है और एक अपवाद उठाया गया है।
>>> str(x)
'foo'
>>> x.__str__()
'foo'
>>>
strऑब्जेक्ट का केवल स्ट्रिंग प्रतिनिधित्व है (याद रखें, xचर संदर्भित करता है 'foo'), इसलिए यह फ़ंक्शन स्ट्रिंग लौटाता है।
>>> str(5)
'5'
पूर्णांक 5का स्ट्रिंग प्रतिनिधित्व है '5'।
>>> str('foo')
'foo'
और स्ट्रिंग का स्ट्रिंग प्रतिनिधित्व 'foo'समान स्ट्रिंग है 'foo'।