कभी-कभी हम एक चर घोषित करते हैं लेकिन हमें इसकी घोषणा के वर्तमान दायरे से बाहर के मूल्यों को संशोधित या एक्सेस करने की आवश्यकता हो सकती है जो वर्तमान कार्यक्रम में कहीं भी हो सकता है। ऐसे परिदृश्य में, हम फ़ंक्शन के अंदर वैरिएबल नाम के साथ ग्लोबल कीवर्ड का उपयोग करते हैं जहां वेरिएबल घोषित किया जाता है। यदि चर किसी फ़ंक्शन के अंदर नहीं है, तो यह स्वचालित रूप से वैश्विक दायरे में है।
फ़ंक्शन के बाहर वैरिएबल
नीचे दिए गए उदाहरण में हम एक फ़ंक्शन के बाहर एक मान देखते हैं, लेकिन हम इसे किसी फ़ंक्शन के अंदर से एक्सेस करने में सक्षम हैं। क्योंकि ऐसा चर पहले से ही वैश्विक दायरे में है।
उदाहरण
x = 56 def func(): y = x *2 return y print(func())
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं:
आउटपुट
112
फ़ंक्शन के अंदर वैरिएबल
अगले उदाहरण में हम एक फ़ंक्शन के अंदर एक चर के मान को बदलने का प्रयास करते हैं और एक त्रुटि प्राप्त करते हैं।
उदाहरण
x = 56 def func(): y = x *2 x = x+2 return y print(func())
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं:
आउटपुट
nboundLocalError: local variable 'x' referenced before assignment
किसी फ़ंक्शन के अंदर वैश्विक दायरे के साथ एक चर के मान को संशोधित करने का एकमात्र तरीका यह है कि इसे किसी फ़ंक्शन के अंदर एक वैश्विक चर के रूप में घोषित किया जाए।
उदाहरण
x = 56 def func(): global x x = x + 2 y = x *2 return y print(func())
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं
आउटपुट
116
नेस्टेड फ़ंक्शन के अंदर वैरिएबल
नेस्टेड फ़ंक्शन के मामले में, हम नीचे के उदाहरण में दिखाए गए अनुसार अंतरतम फ़ंक्शन में वैश्विक चर बनाते हैं।
उदाहरण
def func_out(): x = 56 def func_in(): global x x = 20 print("x is: ",x) x = x + 3 y = x *2 print ("y is: ",y) func_in() func_out() print("x is: ",x)
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं:
आउटपुट
x is: 20 y is: 46 x is: 23