পাইথন আইডেন্টিটি অপারেটর {Identity Operators in python}

 
পাইথন আইডেন্টিটি অপারেটর {Identity Operators in python}

এই অপারেটর দুটি অব্জেক্টস মেমরির অবস্থান তুলনা করতে ব্যাবহার করা হয়। সুতরাং, দুটি অব্জেক্টস একই কিনা তা এই অপারেটর ব্যাবহার করে জানা সম্ভব। আইডি() ফাংশন ব্যবহার করে অব্জেক্টসের মেমরি অবস্থান দেখা যায়। এই ফাংশনটি একটি পূর্ণসংখ্যা প্রদান করে, যাকে পরিচয় নম্বর বলা হয় যা অব্জেক্টসের মেমরি অবস্থানকে অভ্যন্তরীণভাবে উপস্থাপন করে। উদাহরণস্বরূপ, id(a) 'a' নামে উল্লেখ করা অব্জেক্টসের পরিচয় নম্বর দেয় নিম্নলিখিত বিবৃতিগুলি দেখুন:
 
a=20
b=20{codeBox}
 
প্রথম স্টেটমেন্টে, আমরা অবজেক্ট 20 কে 'a' ভেরিয়েবলে বরাদ্দ করছি। দ্বিতীয় স্টেটমেন্টে, আমরা একই অবজেক্টের জন্য আরেকটি ভেরিয়েবল নাম 'b' বরাদ্দ করছি 20। পাইথনে সবকিছুই একটি অবজেক্ট হিসেবে বিবেচিত হয়। এখানে, 20 হল অবজেক্ট যার জন্য দুটি নাম দেওয়া হয়েছে।
যদি আমরা এই দুটি ভেরিয়েবলের একটি আইডেন্টিটি নম্বর প্রদর্শন করি, তাহলে আমরা একই সংখ্যা পাব যেভাবে তারা একই অবজেক্ট উল্লেখ করে।
 
print(id(a))
9789568
print(id(b))
9789568{codeBox}
 
পাইথনে দুটি আইডেন্টিটি অপারেটর আছে:
  1. is
  2. is not

is অপারেটর

'is' অপারেটর দুটি অবজেক্ট একই কিনা তা তুলনা করতে ব্যাবহার হয়। এটি ইন্টারনাল ভাবে অবজেক্টেসের পরিচয় নম্বর তুলনা করবে। যদি অবজেক্টের আইডেন্টিটি নম্বর একই হয়, তাহলে তা True হবে; অন্যথায়,এটি মিথ্যা হবে।

is not অপারেটর

is not অপারেটর সত্য রিটার্ন করবে,যদি তুলনা করা দুটি অবজেক্ট আইডেন্টিটি নাম্বারস একই না হয়।যদি তারা একই হয়, তাহলে এটি মিথ্যা আসবে।
'is' এবং 'is not' অপারেটর অবজেক্টের মান তুলনা করে না। তারা অবজেক্টের পরিচয় নম্বর বা মেমরি অবস্থান তুলনা করে। আমরা যদি অবজেক্টের মান তুলনা করতে চাই, তাহলে আমাদের ইকুয়ালিটি অপারেটর ( == ) ব্যবহার করা উচিত।
 
a = 25
b = 25
if (a is b) :
    print("a and b have same identity")
else:
    print("a and b do not have same identity"){codeBox}

#OutPut This Code
a and b have same identity{codeBox}

আরেকটি উদাহরণ হিসাবে, আমরা 4টি উপাদান সহ দুটি তালিকা নেব:

one = [1,2,3,4]
two = [1,2,3,4]
if(one is two):
    print("one and two are same")
else:
    print("one and two are not same") {codeBox}

#Output This Code
one and two are not same{codeBox}
 
পূর্ববর্তী উদাহরণে, তালিকা এক এবং দুটিতে একই উপাদান বা মান রয়েছে। কিন্তু আউটপুট "এক এবং দুই একই নয়"। কারণ হল: 'is' অপারেটর মান তুলনা করে না। এটি তালিকার পরিচয় নম্বর তুলনা করে। id() ফাংশন ব্যবহার করে এই দুটি তালিকার পরিচয় নম্বর দেখি:
 
id (one)
139664672513792
id (two)
139664671606144{codeBox}
 
যেহেতু উভয় তালিকাই বিভিন্ন মেমরির অবস্থানে তৈরি করা হয়েছে, তাই তাদের পরিচয় সংখ্যা আলাদা। সুতরাং, 'is' অপারেটর 'এক' এবং 'দুই' তালিকাকে দুটি ভিন্ন তালিকা হিসাবে গ্রহণ করবে যদিও তাদের মান একই। এর মানে, 'is' তাদের মান তুলনা করছে না। আমরা তাদের মান তুলনা করতে ইকুয়ালিটি ( == ) অপারেটর ব্যবহার করতে পারি:
 
one = [1,2,3,4]
two = [1,2,3,4]
if(one == two) :
    print("one and two are same")
else:
    print("one and two are not same"){codeBox}

#Output This Code
one and two are same{codeBox}
নবীনতর পূর্বতন