पायथन ग्लोबल, लोकल और नॉनक्लॉक वैरिएबल (उदाहरणों के साथ)

इस ट्यूटोरियल में, आप पायथन ग्लोबल वैरिएबल, लोकल वैरिएबल, नॉनक्लॉक वैरिएबल और उन्हें कहां इस्तेमाल करना है, के बारे में जानेंगे।

वीडियो: अजगर स्थानीय और वैश्विक चर

सार्वत्रिक चर

पायथन में, फ़ंक्शन के बाहर या वैश्विक दायरे में घोषित एक चर को वैश्विक चर के रूप में जाना जाता है। इसका मतलब है कि एक वैश्विक चर को फ़ंक्शन के अंदर या बाहर पहुँचा जा सकता है।

आइए एक उदाहरण देखें कि पायथन में वैश्विक चर कैसे बनाया जाता है।

उदाहरण 1: एक वैश्विक चर बनाएँ

 x = "global" def foo(): print("x inside:", x) foo() print("x outside:", x)

आउटपुट

 x अंदर: वैश्विक x बाहर: वैश्विक

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

यदि आप किसी फ़ंक्शन के अंदर x का मान बदलना चाहते हैं तो क्या होगा?

 x = "global" def foo(): x = x * 2 print(x) foo()

आउटपुट

 UnboundLocalError: स्थानीय चर 'x' असाइनमेंट से पहले संदर्भित

आउटपुट में त्रुटि दिखाई देती है क्योंकि पायथन एक्स को स्थानीय चर मानता है और एक्स को अंदर परिभाषित नहीं किया जाता है foo()

इस काम को करने के लिए, हम globalकीवर्ड का उपयोग करते हैं । अधिक जानने के लिए पायथन ग्लोबल कीवर्ड पर जाएं।

स्थानीय चर

फ़ंक्शन के शरीर के भीतर या स्थानीय दायरे में घोषित एक चर को स्थानीय चर के रूप में जाना जाता है।

उदाहरण 2: कार्यक्षेत्र के बाहर स्थानीय चर पर पहुँचना

 def foo(): y = "local" foo() print(y)

आउटपुट

 NameError: नाम 'y' परिभाषित नहीं है

आउटपुट में एक त्रुटि दिखाई देती है क्योंकि हम स्थानीय वैरिएबल y को वैश्विक दायरे में एक्सेस करने की कोशिश कर रहे हैं जबकि स्थानीय वैरिएबल केवल अंदर foo()या स्थानीय दायरे में काम करता है ।

आइए एक उदाहरण देखें कि पायथन में एक स्थानीय चर कैसे बनाया जाता है।

उदाहरण 3: एक स्थानीय चर बनाएँ

आम तौर पर, हम स्थानीय वेरिएबल बनाने के लिए फ़ंक्शन के अंदर एक वेरिएबल घोषित करते हैं।

 def foo(): y = "local" print(y) foo()

आउटपुट

 स्थानीय

आइए पहले की समस्या पर एक नज़र डालें जहाँ x एक वैश्विक चर था और हम x को अंदर संशोधित करना चाहते थे foo()

वैश्विक और स्थानीय चर

यहां, हम बताएंगे कि एक ही कोड में वैश्विक चर और स्थानीय चर का उपयोग कैसे करें।

उदाहरण 4: एक ही कोड में वैश्विक और स्थानीय चर का उपयोग करना

 x = "global " def foo(): global x y = "local" x = x * 2 print(x) print(y) foo()

आउटपुट

 वैश्विक वैश्विक स्थानीय

उपरोक्त कोड में, हम x को वैश्विक और y को स्थानीय चर के रूप में घोषित करते हैं foo()। फिर, हम *वैश्विक चर x को संशोधित करने के लिए गुणन ऑपरेटर का उपयोग करते हैं और हम x और y दोनों को प्रिंट करते हैं।

कॉल करने के बाद foo(), x का मान बन जाता है global globalक्योंकि हम x * 2दो बार प्रिंट करते थे global। उसके बाद, हम स्थानीय चर y का मान मुद्रित करते हैं local

उदाहरण 5: एक ही नाम के साथ वैश्विक चर और स्थानीय चर

 x = 5 def foo(): x = 10 print("local x:", x) foo() print("global x:", x)

आउटपुट

 स्थानीय x: 10 वैश्विक x: 5

उपरोक्त कोड में, हमने वैश्विक चर और स्थानीय चर दोनों के लिए समान नाम x का उपयोग किया। जब हम एक ही वेरिएबल को प्रिंट करते हैं तो हमें एक अलग परिणाम मिलता है क्योंकि वेरिएबल को दोनों स्कोप में घोषित किया जाता है, अर्थात अंदर स्थानीय स्कोप foo()और ग्लोबल स्कोप foo()

When we print the variable inside foo() it outputs local x: 10. This is called the local scope of the variable.

Similarly, when we print the variable outside the foo(), it outputs global x: 5. This is called the global scope of the variable.

Nonlocal Variables

Nonlocal variables are used in nested functions whose local scope is not defined. This means that the variable can be neither in the local nor the global scope.

Let's see an example of how a nonlocal variable is used in Python.

We use nonlocal keywords to create nonlocal variables.

Example 6: Create a nonlocal variable

 def outer(): x = "local" def inner(): nonlocal x x = "nonlocal" print("inner:", x) inner() print("outer:", x) outer()

Output

 inner: nonlocal outer: nonlocal

उपरोक्त कोड में, एक नेस्टेड inner()फ़ंक्शन है। हम nonlocalएक गैर-परिवर्तनीय चर बनाने के लिए कीवर्ड का उपयोग करते हैं । inner()समारोह एक और समारोह के दायरे में परिभाषित किया गया है outer()

नोट : यदि हम एक गैर-मान चर के मान को बदलते हैं, तो परिवर्तन स्थानीय चर में दिखाई देते हैं।

दिलचस्प लेख...