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

पायथन मॉड्यूल में वेरिएबल स्कोप कैसे काम करता है?

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

वेरिएबल निर्माण

वेरिएबल आमतौर पर केवल लोकल नेमस्पेस में बनाए जाते हैं। global और nonlocal स्टेटमेंट लोकल नेमस्पेस के अलावा अन्य नेमस्पेस में वेरिएबल बना सकते हैं।

स्कोप रिजॉल्यूशन: LEGB नियम

स्कोप रिजॉल्यूशन तब आवश्यक होता है जब यह निर्धारित करने के लिए वेरिएबल का उपयोग किया जाता है कि उसका मान कहां से आना चाहिए। पायथन में स्कोप रिजॉल्यूशन LEGB नियम का पालन करता है:

अक्षरस्कोपविवरण
LLocalकिसी फ़ंक्शन (या लैम्ब्डा) के भीतर किसी भी तरह से असाइन किए गए नाम, और उस फ़ंक्शन में ग्लोबल घोषित नहीं
EEnclosing-function localsकिसी भी और सभी स्थैतिक रूप से एनक्लोजिंग फ़ंक्शन (या लैम्ब्डा) के लोकल स्कोप में नाम, आंतरिक से बाहरी तक
GGlobal (module)मॉड्यूल फ़ाइल के शीर्ष स्तर पर असाइन किए गए नाम, या फ़ाइल के भीतर def में ग्लोबल स्टेटमेंट निष्पादित करके
BBuilt-in (Python)बिल्ट-इन नेम मॉड्यूल में पूर्व-असाइन किए गए नाम: open, range, SyntaxError, आदि

उदाहरण

x = 'global'  # G - ग्लोबल

def outer():
    x = 'enclosing'  # E - एनक्लोजिंग
    
    def inner():
        x = 'local'  # L - लोकल
        print(x)     # 'local' प्रिंट करता है
    
    inner()
    print(x)         # 'enclosing' प्रिंट करता है

outer()
print(x)             # 'global' प्रिंट करता है

global और nonlocal

count = 0

def increment():
    global count
    count += 1

def outer():
    x = 10
    def inner():
        nonlocal x
        x = 20
    inner()
    print(x)  # 20 प्रिंट करता है
  1. - Python Modules कैसे काम करते हैं?

    Python Modules का Working Python के पास Definitions को एक File में रखने और उन्हें Script या Interpreter के Interactive Instance में उपयोग करने का तरीका है। ऐसी File को Module कहते हैं; एक Module से Definitions को अन्य Modules या Main Module (Variables का Collection जो आपको Top Level पर Execute किए

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

    पायथन में एक वेरिएबल तब परिभाषित होता है जब हम इसे कोई मान असाइन करते हैं। हम इसे पहले से घोषित नहीं करते, जैसे हम C और अन्य भाषाओं में करते हैं। हम बस इसका उपयोग शुरू कर देते हैं। x = 141 किसी फाइल या मॉड्यूल के शीर्ष स्तर पर घोषित कोई भी वेरिएबल ग्लोबल स्कोप में होता है। हम इसे फंक्शन्स के अंदर एक

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

    शब्दों, ग्लोबल और लोकल एक स्क्रिप्ट या प्रोग्राम के भीतर वेरिएबल की पहुंच से मेल खाते हैं। ग्लोबल वेरिएबल वह है जिसे कहीं भी एक्सेस किया जा सकता है। लोकल वेरिएबल केवल अपने फ्रेम के भीतर एक्सेस किया जा सकता है। लोकल वेरिएबल को वैश्विक रूप से एक्सेस नहीं किया जा सकता। ग्लोबल वेरिएबल्स वे हैं जो फंक्शन