पब्लिक वेरिएबल्स
Python हमें किसी भी वेरिएबल को एक्सेस करने या Python प्रोग्राम में किसी भी मेंबर मेथड को कॉल करने से प्रतिबंधित नहीं करता।
Python में सभी Python वेरिएबल्स और मेथड्स डिफ़ॉल्ट रूप से पब्लिक होते हैं। इसलिए जब हम किसी वेरिएबल या मेथड को पब्लिक बनाना चाहते हैं, तो हम बस कुछ नहीं करते। आइए नीचे उदाहरण देखें:
उदाहरण
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)
कोड में सभी वेरिएबल्स और मेथड्स डिफ़ॉल्ट रूप से पब्लिक हैं।
जब हम अपने डेटा मेंबर को प्राइवेट घोषित करते हैं, तो हमारा मतलब है कि कोई भी इसे क्लास के बाहर से एक्सेस न कर सके। यहां Python नेम मैंगलिंग नामक तकनीक सपोर्ट करता है। यह फीचर हर मेंबर नाम को जिसे कम से कम दो अंडरस्कोर से प्रीफिक्स किया गया हो और अधिकतम एक अंडरस्कोर से सफ़िक्स किया गया हो, _<className><memberName> में बदल देता है। तो अपने मेंबर को प्राइवेट बनाने के लिए, आइए नीचे उदाहरण देखें:
उदाहरण
class Cup:
def __init__(self, color):
self.__content = None # प्राइवेट वेरिएबल
def fill(self, beverage):
self.__content = beverage
def empty(self):
self.__content = None
अब हमारे कप को केवल fill() और empty() मेथड्स का उपयोग करके भरा और खाली किया जा सकता है। ध्यान दें, यदि आप बाहर से __content एक्सेस करने की कोशिश करते हैं, तो आपको एरर मिलेगा। लेकिन आप अभी भी इस तरह कुछ पा सकते हैं:
redCup = Cup("red")
redCup._Cup__content = "tea"