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

পাইথন isinstance: ধাপে ধাপে গাইড

পাইথনে isinstance() ফাংশন true বা false রিটার্ন করে যদি একটি ভ্যারিয়েবল নির্দিষ্ট ডেটা টাইপের সাথে মেলে। পাইথনে isinstance() এর সিনট্যাক্স হল isinstance(variable_to_check, data_type)।

একটি নির্দিষ্ট ভ্যালুর ডেটা টাইপ চেক করা প্রোগ্রামিং-এ একটি সাধারণ অপারেশন। উদাহরণস্বরূপ, আপনি চেক করতে চাইতে পারেন যে একটি ভ্যারিয়েবলে সংরক্ষিত মান স্ট্রিং কিনা নম্বর, কারণ এই ডেটা টাইপগুলো কোডে আলাদাভাবে কাজ করে।

ইহান isinstance() ফাংশন কাজে আসে। isinstance() পাইথনের একটি বিল্ট-ইন মেথড যা একটি নির্দিষ্ট ভ্যালুর ডেটা টাইপ ভেরিফাই করতে দেয়। উদাহরণস্বরূপ, আপনি isinstance() ব্যবহার করে চেক করতে পারেন একটি মান স্ট্রিং কিনা বা লিস্ট।

এই টিউটোরিয়ালে আপনাকে পাইথনে isinstance() মেথড কীভাবে ব্যবহার করতে হয় তার মাধ্যমে গাইড করবে এবং কিছু উদাহরণ দিয়ে বোঝাতে সাহায্য করবে।

Python isinstance ওভারভিউ

পাইথনে কোডিং করার সময় আপনি বিভিন্ন ধরনের ডেটা ব্যবহার করেন। এই ডেটা টাইপগুলো شامل: স্ট্রিং, নম্বর, লিস্ট, টাপল, এবং ডিকশনারি। প্রতিটি ডেটা টাইপের নিজস্ব নিয়ম সেট রয়েছে যা গভর্ন করে যে ডেটা কীভাবে সংরক্ষণ এবং ম্যানিপুলেট হবে। উদাহরণস্বরূপ, পাইথন ব্যবহার করে আপনি নম্বরের ওপর ম্যাথম্যাটিক্যাল ক্যালকুলেশন পারফর্ম করতে পারেন কিন্তু স্ট্রিংয়ের ওপর নয়।

ফলস্বরূপ, আপনার প্রোগ্রামে সঠিক ডেটা টাইপের সাথে কাজ করছেন কিনা তা নিশ্চিত করা গুরুত্বপূর্ণ। আপনি পাইথনে isinstance ব্যবহার করে ভেরিফাই করতে পারেন যে আপনি যে ডেটা দিয়ে কাজ করছেন সেটি উপযুক্ত ডেটা টাইপ হিসেবে সংরক্ষিত আছে কিনা। পাইথন ব্যবহার করার সময়, প্রয়োজন অনুসারে ডেটা টাইপ চেক করুন।

isinstance() পাইথনে বিল্ট-ইন একটি ফাংশন যা চেক করে একটি মান নির্দিষ্ট ডেটা টাইপ হিসেবে সংরক্ষিত আছে কিনা। type() মেথডের বিপরীতে (যা পরে এই আর্টিকেলে আলোচনা করা হয়েছে), isinstance() মেথড শুধু True বা False রিটার্ন করে, নির্ভর করে যে আপনি যে মানটি চেক করছেন সেটি আপনার স্পেসিফাই করা ডেটা টাইপ বা টাইপগুলো হিসেবে সংরক্ষিত আছে কিনা।

isinstance() এর সিনট্যাক্স নিচের মতো:

isinstance(object, data_types)

isinstance() মেথড দুটি প্যারামিটার নেয়, যはいはい রিকোয়ার্ড:

  • object: যে অবজেক্টের ডেটা টাইপ আপনি চেক করতে চান।
  • data_types: অবজেক্টের সম্ভাব্য ডেটা টাইপের কমপক্ষে একটি।

isinstance() মেথড তারপর অবজেক্টটি আপনার স্পেসিফাই করা ডেটা টাইপ(গুলো)র সাথে কমপেয়ার করে। আপনি যদি অবজেক্টটি দুটি বা ততোধিক ডেটা টাইপের সাথে কমপেয়ার করতে চান, তবে আপনাকে data_types প্যারামিটার হিসেবে একটি টাপল স্পেসিফাই করতে হবে।

প্রতিক্রিয়াস্বরূপ, আপনার কোড True বা False রিটার্ন করে। কোড True রিটার্ন করবে যদি অবজেক্টটি আপনার স্পেসিফাই করা ডেটা টাইপ (বা ডেটা টাইপগুলোর একটি) তে থাকে, এবং False যদি না থাকে।

মূলত, পাইথনে isinstance ব্যবহার করার সময় আপনি আপনার কোডের সামনে একটি ফিল-ইন-দ্য-ব্ল্যাঙ্ক স্টেটমেন্ট এবং কমপক্ষে একটি আন্সার চয়েস উপস্থাপন করছেন। আপনার স্টেটমেন্ট: This object is a (data type)। ডেটা টাইপ প্যারামিটার স্পেসিফাই করলে সেটি কমপ্লিট হয়। দুটি উদাহরণ:

  • 12 is a number.
  • books is a number.

প্রতিক্রিয়া হিসেবে, আপনার কোড True বা False রিটার্ন করে।

Python isinstance উদাহরণ

চলুন দুটি উদাহরণ দিয়ে দেখি কীভাবে আপনি আপনার কোডে isinstance() মেথড ব্যবহার করতে পারেন। ধরুন, আমাদের একটি মান আছে, এবং আমরা ভেরিফাই করতে চাই যে মানটি একটি স্ট্রিং। আমরা isinstance() ব্যবহার করে এটি করতে পারি। কোডটি নিচে:

print(isinstance("String", str))

আমাদের কোড একটি টাইপ চেক পারফর্ম করে এবং ফাংশন রিটার্ন করে: True।

কারণ String আসলে একটি স্ট্রিং (str হল পাইথনে string ডেটা টাইপকে রেফার করার উপায়) তাই প্রোগ্রাম True রিটার্ন করে।

এখন আমরা একটি আরও বিস্তারিত উদাহরণ এক্সপ্লোর করব।

ধরুন, আমরা দ্বিতীয় শ্রেণির জন্য একটি মাল্টিপ্লিকেশন গেম বানাচ্ছি। আমাদের গেম ইউজারকে একটি ম্যাথ প্রব্লেম প্রেজেন্ট করে, এবং তারপর ইউজারের আন্সার চেক করে যে সে সঠিক কিনা। আমাদের প্রোগ্রাম কাজ করার জন্য, আমাদের নিশ্চিত করতে হবে যে ইউজার আমাদের গেমে একটি নম্বর এন্টার করেছে।

প্লেয়ার থেকে কালেক্ট করা আন্সার একটি নম্বর কিনা চেক করতে আমরা এই কোড ব্যবহার করতে পারি:

answer = 5 * 8
user_answer = input("What is 5 x 8?")
print(isinstance(user_answer, (int, float)))

আমাদের কোড রিটার্ন করে: False।

আমাদের প্রোগ্রাম ব্রেক ডাউন করি। প্রথম লাইনে, আমরা প্লেয়ারকে প্রেজেন্ট করা ম্যাথ প্রব্লেমের আন্সার ক্যালকুলেট করেছি। এই কেসে, ম্যাথ প্রব্লেমটি ছিল: What is 5 x 8?, তাই আমরা কোডের প্রথম লাইনে answer = 5 * 8 ইনপুট করেছি।

তারপর, আমরা input() মেথড ব্যবহার করেছি ইউজার থেকে আন্সার রিট্রিভ করতে।

কোডের শেষ লাইনে, আমরা isinstance() ব্যবহার করেছি চেক করতে আমাদের ইউজারের আন্সার (যেটি user_answer-এ সংরক্ষিত) কি একটি ইন্টিজার অথবা ফ্লোট, যা পাইথনে নম্বর রিপ্রেজেন্ট করতে ব্যবহৃত দুটি ডেটা টাইপ। আমরা এটি একটি টাপল তৈরি করে করি যা সেই ডেটা টাইপগুলো সংরক্ষণ করে যেগুলোর সাথে আমরা আমাদের ভ্যালু চেক করতে চাই। আমাদের কোডে, এই টাপলটি: (int, float)।

আমাদের কোড False রিটার্ন করে, যা বলে যে ইউজারের আন্সার নথি ইন্টিজার (int) নথি ফ্লোট।

এখন যেহেতু আমরা জানি আমাদের অবজেক্ট int বা float এর ইনস্ট্যান্স নয়, আমরা সমস্যা ডায়াগনোজ করতে পারি। আমাদের কোড False রিটার্ন করছে কারণ input() ডিফল্টভাবে স্ট্রিং দেয়, এমনকি ইউজার নম্বর এন্টার করলেও। তাই, আমাদের কোড কাজ করার জন্য, আমাদের input() মেথডের ফলাফলকে ইন্টিজারে কনভার্ট করতে হবে। নিচের কোড দিয়ে এটি করা যাবে:

answer = 5 * 8
user_answer = int(input("What is 5 x 8?"))
print(isinstance(user_answer, (int, float)))

এখন কোড রান করলে আমরা পাই: True।

এই উদাহরণ এবং পূর্বের উদাহরণের একমাত্র পার্থক্য হলো, এই কোডে, user_answer লাইনে, আমরা input() মেথডের ফলাফলকে int() ব্যবহার করে ইন্টিজারে কনভার্ট করেছি। তাই, প্রোগ্রাম ইনপুটকে স্ট্রিং নয় বরং ইন্টিজার হিসেবে রেজিস্টার করে। তাই, যখন আমরা isinstance() মেথড ব্যবহার করে এই ভ্যালুর ডেটা টাইপ চেক করি, প্রোগ্রাম ভেরিফাই করে যে মানটি হয় ইন্টিজার অথবা ফ্লোট।

উপরের উদাহরণে, আমরা চেক করেছি কোনো অবজেক্ট নির্দিষ্ট বিল্ট-ইন ডেটা টাইপ ধারণ করছে কিনা। isinstance() মেথড একটি নির্দিষ্ট ক্লাসের সাথে অবজেক্ট কমপেয়ার করতেও ব্যবহার করা যায়।

type বনাম isinstance

আপনি যদি কখনো পাইথনে একটি ভ্যালুর টাইপ চেক করার প্রয়োজন পড়েছেন, তবে আপনি type() মেথডের সাথে পরিচিত হতে পারেন। type() পাইথনের একটি বিল্ট-ইন ফাংশন যা একটি ভ্যারিয়েবল বা ভ্যালুর টাইপ জানতে ব্যবহার করা যায়। পাইথন type মেথডের সিনট্যাক্স:

type(data)

উদাহরণস্বরূপ, ধরুন আপনার একটি নম্বর আছে এবং আপনি চেক করতে চান সেটি কী ডেটা টাইপ হিসেবে কোড করা হয়েছে। নিচের কোড দিয়ে এটি করা যাবে:

number = 8
print(type(number))

আমাদের কোড রিটার্ন করে:

<class 'int'>

দেখতে পাচ্ছেন, আমাদের প্রোগ্রাম আমাদের ডেটার টাইপ রিটার্ন করে। এটি বলে যে ডেটাটি ইন্টিজার হিসেবে সংরক্ষিত।

type() এবং isinstance() ফাংশনের মধ্যে একটি বড় পার্থক্য রয়েছে যা একটি নির্দিষ্ট পরিস্থিতিতে অন্যটির চেয়ে আরও উপযুক্ত করে তোলে। আপনি যদি একটি ভ্যালুর ডেটা টাইপ দেখতে চান, type() আরও উপযুক্ত হতে পারে। কিন্তু, আপনি যদি ভেরিফাই করতে চান যে একটি মান নির্দিষ্ট ডেটা টাইপ বা টাইপগুলোর সাথে সংরক্ষিত আছে—যেমন স্ট্রিং বা ফ্লোট—তবে আপনাকে isinstance() ব্যবহার করা উচিত।

উপসংহার

পাইথনে, আপনি isinstance() ফাংশন ব্যবহার করে ভেরিফাই করতে পারেন কোনো মান নির্দিষ্ট ডেটা টাইপ ধারণ করছে কিনা। উদাহরণস্বরূপ, আপনি ভেরিফাই করতে চান একটি ভ্যালু লিস্ট লিস্ট হিসেবে সংরক্ষিত আছে কিনা, অথবা একটি নম্বর ফ্লোট হিসেবে সংরক্ষিত আছে কিনা, তবে আপনি isinstance() ব্যবহার করতে পারেন।

এই পাইথন টিউটোরিয়ালে isinstance() ব্যবহার করে ভেরিফাই করার পদ্ধতি দেখানো হয়েছে কোনো মান নির্দিষ্ট ডেটা টাইপ ধারণ করছে কিনা। এখন আপনার পাইথন মাস্টার মত isinstance() ব্যবহার করার ইনফরমেশন আছে।

  1. পাইথন ইন্টারপ্রেটার: ধাপে ধাপে গাইড

  2. পাইথন try-except: ধাপে ধাপে গাইড

  3. পাইথনে পাওয়ার (ক্ষমতা) ক্যালকুলেশন: ** অপারেটর এবং pow() ফাংশন

  4. পাইথনে ফাইল রিনেম: একটি ধাপে ধাপে গাইড