>>> 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'
।