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