Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python में प्राइवेट वेरिएबल


व्यावहारिक रूप से, Python में प्राइवेट मेंबर वेरिएबल जैसी कोई चीज़ नहीं है। हालांकि, शुरुआत में दो अंडरस्कोर (__) जोड़ने से एक वेरिएबल या मेथड प्राइवेट हो जाता है, यह कन्वेंशन अधिकांश Python कोड द्वारा उपयोग किया जाता है।

आइए एक उदाहरण के माध्यम से इस अवधारणा को समझते हैं -

privateVar1.py

class myClass:
    __privateVar = 27
    def __privMeth(self):
        print("I'm inside class myClass")
    def hello(self):
        print("Private Variable value: ", myClass.__privateVar)

foo = myClass()
foo.hello()
foo.__privateMeth

उपरोक्त प्रोग्राम में, __privMeth एक प्राइवेट मेथड है और __privateVar एक प्राइवेट वेरिएबल है। आइए अब इसका आउटपुट देखें -

आउटपुट

Private Variable value: 27
Traceback (most recent call last):
  File "C:/Python/Python361/privateVar1.py", line 12, in 
    foo.__privateMeth
AttributeError: 'myClass' object has no attribute '__privateMeth'

उपरोक्त आउटपुट से, हम देख सकते हैं कि क्लास "myClass" के बाहर, आप प्राइवेट मेथड के साथ-साथ प्राइवेट वेरिएबल को एक्सेस नहीं कर सकते। हालांकि, क्लास (myClass) के अंदर हम प्राइवेट वेरिएबल को एक्सेस कर सकते हैं। hello() मेथड में, __privateVar वेरिएबल को एक्सेस किया जा सकता है (जैसा कि ऊपर दिखाया गया है: "Private Variable value: 27")।

तो उपरोक्त उदाहरण से, हम समझ सकते हैं कि क्लास के अंदर सभी वेरिएबल और मेथड डिफ़ॉल्ट रूप से पब्लिक होते हैं। जब हम डेटा मेंबर को प्राइवेट घोषित करते हैं तो इसका मतलब है कि वे केवल क्लास के अंदर ही एक्सेसिबल हैं और क्लास के बाहर अप्राप्य हैं। वेरिएबल या मेथड को प्राइवेट बनाने की तकनीक को डेटा मैंगलिंग कहा जाता है। __spam रूप का कोई भी पहचानकर्ता (कम से कम दो लीडिंग अंडरस्कोर, अधिकतम एक ट्रेलिंग अंडरस्कोर) को टेक्स्टुअली _classname__spam से बदल दिया जाता है, जहां classname वर्तमान क्लास का नाम है जिसमें लीडिंग अंडरस्कोर हटा दिए गए हैं। यह मैंगलिंग पहचानकर्ता की सिंटैक्टिक स्थिति की परवाह किए बिना किया जाता है, जब तक यह क्लास की परिभाषा के भीतर होता है।

डबल अंडरस्कोर नाम सबक्लास द्वारा आकस्मिक ओवरराइडिंग से बचने के लिए होते हैं।


  1. - Python क्लास में पब्लिक और प्राइवेट वेरिएबल क्या हैं?

    पब्लिक वेरिएबल्स Python हमें किसी भी वेरिएबल को एक्सेस करने या Python प्रोग्राम में किसी भी मेंबर मेथड को कॉल करने से प्रतिबंधित नहीं करता। Python में सभी Python वेरिएबल्स और मेथड्स डिफ़ॉल्ट रूप से पब्लिक होते हैं। इसलिए जब हम किसी वेरिएबल या मेथड को पब्लिक बनाना चाहते हैं, तो हम बस कुछ नहीं करते। आ

  1. - पायथन में वेरिएबल नाम को स्ट्रिंग के रूप में कैसे प्राप्त करें?

    यह वास्तव में पायथन में कुछ ऐसा नहीं है जो आप करते हैं क्योंकि वेरिएबल्स वास्तव में ऑब्जेक्ट्स के लिए नाम मैपिंग हैं। पायथन में केवल वे ऑब्जेक्ट्स हैं जिनके कैनोनिकल नाम हैं वे हैं मॉड्यूल्स, फ़ंक्शन्स, और क्लासेस, और निश्चित रूप से इसकी कोई गारंटी नहीं है कि यह कैनोनिकल नाम फ़ंक्शन या क्लास परिभाषि

  1. - पावरशेल वेरिएबल में महारत: कुशल स्क्रिप्टिंग के लिए आपका गाइड

    कंप्यूटर साइंस (और कैज़ुअल कंप्यूटिंग) में, एक वेरिएबल मेमोरी में एक स्थान है जो बाद में उपयोग के लिए मनमाना जानकारी रखता है। दूसरे शब्दों में, यह आपके लिए डेटा डालने और निकालने के लिए एक अस्थायी स्टोरेज कंटेनर है। बैश शेल में, वह डेटा एक शब्द (कंप्यूटर भाषा में एक स्ट्रिंग) या एक संख्या (एक इंटीजर)