দুইটা অবজেক্টকে compare করার জন্য Identity Operators ব্যবহার করা হয়। যদি অবজেক্ট এর মেমোরি লোকেশন আলাদা হয় তখন দুইটি অবজেক্টকে আলাদা আলাদা অবজেক্ট হিসাবে দেখে।
operator | description |
is | সত্য হবে যখন দুইটা অবজেক্ট এর মেমোরি লোকেশন same হবে |
Is not | সত্য হবে যখন দুইটা অবজেক্ট এর মেমোরি লোকেশন আলাদা হবে |
এটা বোঝার জন্য আমাদের পাইথন অবজেক্ট কে ভালোভাবে বুঝতে হবে python object
is (Python Operator )
a = 10
b = 20
print(a is b )
# আউটপুট : False
কিন্তু যদি immutable অবজেক্ট দুইটির ভ্যালু একই হয় তখন পাইথন মেমোরি অপ্টিমাইজ এর জন্য প্রথমে প্রথম অবজেক্ট তৈরী করবে এবং পরবর্তী ভ্যারিয়েবল এর জন্য নতুন কোন মেমোরি লোকেশন নেবে না প্রথম অবজেক্ট এর মেমোরি লোকেশন কে দ্বিতীয় অবজেক্ট এর মেমোরি লোকেশন হিসাবে সেট করবে।
a = 10
b = 10
print(a is b )
# আউটপুট : True
এটা যেভাবে কাজ করেছে :
একটা মেমোরি লোকেশন সেট করেছে পরবর্তীতে যখন দেখেছে b এর ভ্যালু a এর same value তখন b=a . অর্থাৎ b এর ভ্যালু a এর মেমোরি লোকেশন এ আছে। যখন অবজেক্ট এর মেমোরি লোকেশন আলাদা হয় তখন is মিথ্যা রিটার্ন করে।
is not (Python Operator )
is এর বিপরীত হলো is not . যখন দুইটা অবজেক্ট আলাদা হবে তখনি সত্য হবে।
a = 10
b = 10
print(a is not b )