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