पायथन प्रोग्राम में अलग-अलग वेरिएबल्स का अलग-अलग स्कोप होता है। यह इस बात पर निर्भर करता है कि इसे कहां घोषित किया गया है, वेरिएबल फंक्शन के अंदर एक्सेसिबल हो भी सकता है और नहीं भी। कभी-कभी हमें किसी फंक्शन के अंदर मौजूद वेरिएबल को उसके वर्तमान स्कोप के बाहर से संशोधित करने की आवश्यकता होती है। ऐसे परिदृश्य में हम वेरिएबल नाम के साथ global कीवर्ड का उपयोग करते हैं।
global कीवर्ड के बारे में मुख्य बिंदु निम्नलिखित हैं:
- फंक्शन के बाहर घोषित वेरिएबल डिफ़ॉल्ट रूप से ग्लोबल वेरिएबल होता है।
- हम फंक्शन के अंदर के वेरिएबल के लिए
globalकीवर्ड का उपयोग करते हैं ताकि उसे संशोधित किया जा सके। globalकीवर्ड के बिना, फंक्शन के अंदर का वेरिएबल डिफ़ॉल्ट रूप से लोकल होता है।
ग्लोबल के बिना
नीचे दिए गए उदाहरणों में हम देखेंगे कि global कीवर्ड के बिना वेरिएबल परिवर्तन कैसे होता है। इससे हमें यह समझने में मदद मिलेगी कि अगले प्रोग्राम में global कीवर्ड क्या अंतर लाता है। नीचे दिए गए उदाहरण में हम फंक्शन के अंदर ग्लोबल वेरिएबल को संशोधित करने का प्रयास करते हैं। लेकिन एक त्रुटि होती है क्योंकि हम फंक्शन के अंदर ग्लोबल वेरिएबल को संशोधित नहीं कर सकते।
उदाहरण
var = 321
# वेरिएबल को संशोधित करने का फंक्शन
def modify():
var = var * 2
print(var)
# फंक्शन कॉल करें
modify()
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:
UnboundLocalError: local variable 'var' referenced before assignment
ग्लोबल के साथ
अब हम कीवर्ड global के साथ फंक्शन के अंदर वेरिएबल घोषित करते हैं। यह वेरिएबल को संशोधन योग्य बनाता है।
उदाहरण
var = 321
# वेरिएबल को संशोधित करने का फंक्शन
def modify():
global var
var = var * 2
print(var)
# फंक्शन कॉल करें
modify()
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:
642
नेस्टेड फंक्शन्स के भीतर ग्लोबल
यदि हमें नेस्टेड फंक्शन्स का उपयोग करना है तो हमें इनर फंक्शन में global कीवर्ड घोषित करना होगा ताकि वेरिएबल को संशोधित किया जा सके।
उदाहरण
def outer_func():
var = 321
# वेरिएबल को संशोधित करने का फंक्शन
def modify():
global var
var = var * 2
print(var)
# फंक्शन कॉल करें
modify()
outer_func()
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:
642