পাইথন আইডেন্টিটি অপারেটর এবং "==" এবং "আইএস" অপারেটরের মধ্যে পার্থক্য শিখুন


এই নিবন্ধটি মূলত পাইথনের একটি গুরুত্বপূর্ণ অপারেটর ("পরিচয় অপারেটর") এবং তুলনামূলক অপারেটর (==) থেকে কীভাবে কোনও পরিচয় অপারেটর পৃথক (যে তা নয়) ব্যাখ্যা করার জন্য তৈরি করা হয়েছে।

পরিচয় অপারেটর

আইডেন্টিটি অপারেটর ( "হ'ল" এবং "নয়" ) অবজেক্টের মেমরির অবস্থানের তুলনা করতে ব্যবহৃত হয়। যখন কোনও বস্তু মেমোরিতে তৈরি করা হয় তখন সেই অবজেক্টের জন্য একটি অনন্য মেমরি ঠিকানা বরাদ্দ করা হয়।

  • '==' তুলনা করে যদি উভয় বস্তুর মান অভিন্ন হয় বা না
  • ‘হ'ল’ তুলনা করা হয় যদি উভয় বস্তু একই মেমরি অবস্থানের সাথে সম্পর্কিত

নাম, নাম 1 এবং নাম 2 তিনটি স্ট্রিং অবজেক্ট তৈরি করুন। স্ট্রিং অবজেক্ট নাম এবং নেম 2 একই মান ধারণ করবে এবং নাম 1 বিভিন্ন মান রাখে।

যখন আমরা এই বস্তুগুলি তৈরি করি, তখন দৃশ্যের পিছনে যা ঘটে থাকে তা হ'ল সেই বস্তুটি স্মৃতিতে তৈরি হবে এবং প্রোগ্রামটির জীবদ্দশায় উপলভ্য হবে।

এখন আপনি দুটি তুলনা অপারেটর "==" ব্যবহার করতে পারেন যা উভয় বস্তুর মান একই। তুলনা অপারেটরের আউটপুট একটি বুলিয়ান (সত্য বা মিথ্যা) মান হবে।

সাম্যের জন্য নির্ধারণ করতে এখন আপনি দুটি মান তুলনা করেছেন, আসুন সনাক্তকারী অপারেটর কীভাবে কাজ করে তা একবার দেখে নেওয়া যাক।

অন্তর্নির্মিত আইডি() কোনও ফাংশন কোনও বস্তুর "পরিচয়" পেতে ব্যবহৃত হয়। একটি পূর্ণসংখ্যা যা তার জীবদ্দশায় বস্তুর জন্য অনন্য এবং ধ্রুবক হবে।

এটিকে সহজ করে তুলতে এটিকে আপনার জন্য নির্ধারিত অনন্য সরকারী আইডি বা এমপি আইডি হিসাবে, একইভাবে প্রতিটি বস্তুর জন্য একটি অনন্য পূর্ণসংখ্যার মান নির্ধারিত হয়।

এখন আপনি "হয়" অপারেটর ব্যবহার করে 2 অবজেক্ট রেফারেন্সের তুলনা করতে পারেন।

যখন আমি পরিচয় অপারেটরটি ব্যবহার করে নাম এবং নাম 1 বা নেম 2 এর তুলনা করি তখন এটি ব্যাকএন্ডে কী করে তা কেবল "আইডি (নাম) == আইডি (নাম 2)" চালায়। যেহেতু আইডি (নাম) এবং আইডি (নাম 2) উভয়ই একই মেমরি অবস্থান ভাগ করে, তাই এটি সত্য ফিরে আসে।

এখন এখানে আকর্ষণীয় অংশ আসে। আমাদের পূর্ববর্তী উদাহরণটি দেখুন যেখানে নাম এবং নাম 1 উভয়ের অভিন্ন মান রয়েছে এবং আমরা id() ফাংশনটি চালানোর সময় একই সংখ্যার মানটি প্রদান করে। নীচের স্ক্রিনশট থেকে একই মানগুলি ভাগ করে নিলেও কেন আপনি "নাম_নু" এবং "নাম_লে" অবজেক্টটি অভিন্ন নয় বলে মনে করেন?

অজগর নকশা বাস্তবায়নের কারণেই এটি। আপনি যখন পরিসীমাতে (-5,256) এবং স্ট্রিং অবজেক্টগুলি 20 টির চেয়ে বেশি বা তার সমান স্ট্রিং অবজেক্ট তৈরি করেন, একই মানের জন্য মেমরিতে আলাদা আলাদা বস্তু তৈরি করার পরিবর্তে এই বস্তুগুলি ইতিমধ্যে তৈরি করা অবজেক্টের পয়েন্টার হিসাবে কাজ করে।

চিত্রের উপস্থাপন নীচে আমরা এই নিবন্ধে আমরা এখন পর্যন্ত যা দেখেছি তার একটি পরিষ্কার ধারণা দেবে।

এই নিবন্ধে, আমরা দেখেছি একটি পরিচয় অপারেটর কী। তুলনা অপারেটর এবং পরিচয় অপারেটর কীভাবে ব্যবহৃত হয়, মেমরিতে কীভাবে কোনও বস্তু তৈরি হয় সে সম্পর্কে ডিজাইন বাস্তবায়ন।