কম্পিউটার টিউটোরিয়াল

পাইথনে __str__ এবং __repr__ এর পার্থক্য কী?


বিল্ট-ইন ফাংশন repr() এবং str() যথাক্রমে object.__repr__(self) এবং object.__str__(self) মেথড কল করে। প্রথম ফাংশন অবজেক্টের অফিসিয়াল রিপ্রেজেন্টেশন কাম্পিউট করে, যখন দ্বিতীয়টি ইনফরমাল রিপ্রেজেন্টেশন রিটার্ন করে।

ইন্টিজার অবজেক্টের জন্য দুটি ফাংশনের রেজাল্ট একই।

>>> x = 1
>>> repr(x)
'1'
>>> str(x)
'1'

তবে, স্ট্রিং অবজেক্টের জন্য এটা সত্য নয়।

>>> x = "Hello"
>>> repr(x)
"'Hello'"
>>> str(x)
'Hello'

repr()-এর রিটার্ন ভ্যালু একটি স্ট্রিং অবজেক্টের জন্য eval() ফাংশন দিয়ে ইভ্যালুয়েট করা যায় এবং একটি বৈধ স্ট্রিং অবজেক্ট রেজাল্ট হয়। তবে, str()-এর রেজাল্ট ইভ্যালুয়েট করা যায় না।

>>> y1 = repr(x)
>>> eval(y1)
'Hello'
>>> y2 = str(x)
>>> eval(y2)
NameError: name 'Hello' is not defined

সংক্ষেপে: repr() অবজেক্টের একটি ডিফল্ট এবং অনএম্বিগুয়াস রিপ্রেজেন্টেশন রিটার্ন করে, যেখানে str() একটি ইনফরমাল রিপ্রেজেন্টেশন দেয় যা পড়া যেতে পারে কিন্তু সবসময় অনএম্বিগুয়াস নয়।


  1. JspWriter এবং PrintWriter-এর পার্থক্য

  2. Tkinter(Python)-এ root.destroy() এবং root.quit() এর পার্থক্য কী?

  3. Python-এ tkinter এবং tkinter.ttk উইজেটের পার্থক্য কী?

  4. পাইথনে গ্লোবাল এবং লোকাল ভেরিয়েবলের পার্থক্য