কম্পিউটার

পাইথন ক্লাসে পাবলিক এবং প্রাইভেট ভেরিয়েবল কি?


পাবলিক ভেরিয়েবল

পাইথন আমাদের কোনো ভেরিয়েবল অ্যাক্সেস করতে বা পাইথন প্রোগ্রামে কোনো সদস্য পদ্ধতিতে কল করতে বাধা দেয় না।

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

উদাহরণ

class Mug:
    def __init__(self):
        self.color = None
        self.content = None

    def fill(self, beverage):
        self.content = beverage

    def empty(self):
        self.content = None

brownMug = Mug()
brownMug.color = "brown"
print brownMug.empty()
print brownMug.fill('tea')
print brownMug.color
print brownMug.content

কোডের সমস্ত ভেরিয়েবল এবং পদ্ধতিগুলি ডিফল্টরূপে সর্বজনীন৷

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

উদাহরণ

class Cup:
    def __init__(self, color):
         self.__content = None  # private variable
    def fill(self, beverage):
        self.__content = beverage
    def empty(self):
        self.__content = None

আমাদের কাপ এখন শুধুমাত্র fill() এবং empty() পদ্ধতি ব্যবহার করে পূর্ণ এবং ঢেলে দেওয়া যাবে। মনে রাখবেন, আপনি যদি বাইরে থেকে __content অ্যাক্সেস করার চেষ্টা করেন, তাহলে আপনি একটি ত্রুটি পাবেন। কিন্তু আপনি এখনও এইরকম কিছুতে হোঁচট খেতে পারেন -

redCup = Cup("red")
redCup._Cup__content = "tea"

  1. পাইথনে উত্তরাধিকার

  2. পাইথনে ক্যারেক্টার ক্লাস অপারেশন কি কি?

  3. পাইথন 2.x এবং পাইথন 3.x সংস্করণগুলির মধ্যে পার্থক্য কী?

  4. Python 2.7.x এবং Python 3.x এর মধ্যে মূল পার্থক্যগুলি কী কী?