पायथन ग्लोबल कीवर्ड (उदाहरणों के साथ)

इस लेख में, आप वैश्विक कीवर्ड, ग्लोबल वेरिएबल और ग्लोबल कीवर्ड का उपयोग कब करेंगे, इसके बारे में जानेंगे।

इस लेख को पढ़ने से पहले, सुनिश्चित करें कि आपको पायथन ग्लोबल, लोकल और नॉनोकल वैरिएबल्स के कुछ बेसिक्स मिल गए हैं।

वैश्विक कीवर्ड क्या है

पायथन में, globalकीवर्ड आपको मौजूदा दायरे से बाहर चर को संशोधित करने की अनुमति देता है। इसका उपयोग वैश्विक चर बनाने और स्थानीय संदर्भ में चर में परिवर्तन करने के लिए किया जाता है।

वैश्विक कीवर्ड के नियम

globalपायथन में कीवर्ड के लिए बुनियादी नियम हैं:

  • जब हम किसी फ़ंक्शन के अंदर एक वैरिएबल बनाते हैं, तो यह डिफ़ॉल्ट रूप से स्थानीय होता है।
  • जब हम किसी फ़ंक्शन के बाहर एक चर को परिभाषित करते हैं, तो यह डिफ़ॉल्ट रूप से वैश्विक होता है। आपको globalकीवर्ड का उपयोग करने की आवश्यकता नहीं है ।
  • हम globalएक फ़ंक्शन के अंदर एक वैश्विक चर को पढ़ने और लिखने के लिए कीवर्ड का उपयोग करते हैं।
  • globalकिसी फ़ंक्शन के बाहर कीवर्ड का उपयोग कोई प्रभाव नहीं है।

वैश्विक कीवर्ड का उपयोग

एक उदाहरण लेते हैं।

उदाहरण 1: एक फ़ंक्शन के अंदर से वैश्विक परिवर्तनीय तक पहुंचना

 c = 1 # global variable def add(): print(c) add()

जब हम उपरोक्त कार्यक्रम चलाते हैं, तो आउटपुट होगा:

 1 है

हालाँकि, हमारे पास कुछ परिदृश्य हो सकते हैं जहाँ हमें किसी फ़ंक्शन के अंदर से वैश्विक चर को संशोधित करने की आवश्यकता होती है।

उदाहरण 2: फ़ंक्शन के अंदर से ग्लोबल वेरिएबल को संशोधित करना

 c = 1 # global variable def add(): c = c + 2 # increment c by 2 print(c) add()

जब हम उपरोक्त कार्यक्रम चलाते हैं, तो आउटपुट में त्रुटि दिखाई देती है:

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

ऐसा इसलिए है क्योंकि हम केवल वैश्विक चर का उपयोग कर सकते हैं, लेकिन इसे फ़ंक्शन के अंदर से संशोधित नहीं कर सकते।

इसका समाधान globalकीवर्ड का उपयोग करना है ।

उदाहरण 3: वैश्विक उपयोग करके एक फंक्शन के अंदर से ग्लोबल वेरिएबल को बदलना

 c = 0 # global variable def add(): global c c = c + 2 # increment by 2 print("Inside add():", c) add() print("In main:", c)

जब हम उपरोक्त कार्यक्रम चलाते हैं, तो आउटपुट होगा:

 अंदर जोड़ने (): 2 मुख्य में: 2

उपरोक्त कार्यक्रम में, हम c को add()फ़ंक्शन के अंदर एक वैश्विक कीवर्ड के रूप में परिभाषित करते हैं।

उसके बाद, हम चर c को बढ़ाते हैं 1, अर्थात c = c + 2। उसके बाद, हम add()फ़ंक्शन को कॉल करते हैं। अंत में, हम वैश्विक वेरिएबल c को प्रिंट करते हैं।

हम देख सकते हैं, परिवर्तन भी समारोह के बाहर वैश्विक चर पर हुई c = 2

ग्लोबल वेरिएबल्स अदर पाइथन मॉड्यूल्स

पायथन में, हम config.pyवैश्विक चर धारण करने के लिए एक ही मॉड्यूल बनाते हैं और एक ही कार्यक्रम के भीतर पायथन मॉड्यूल में जानकारी साझा करते हैं।

यहां बताया गया है कि हम अजगर मॉड्यूल में वैश्विक चर कैसे साझा कर सकते हैं।

उदाहरण 4: एक वैश्विक परिवर्तनशील एक प्रकार का अजगर मॉड्यूल साझा करें

config.pyवैश्विक चर को संचित करने के लिए एक फ़ाइल बनाएँ

 a = 0 b = "empty"

update.pyवैश्विक चर बदलने के लिए एक फ़ाइल बनाएँ

 import config config.a = 10 config.b = "alphabet"

main.pyमान में परिवर्तन का परीक्षण करने के लिए, एक फ़ाइल बनाएँ

 import config import update print(config.a) print(config.b)

जब हम main.pyफ़ाइल चलाते हैं , तो आउटपुट होगा

 १० वर्णमाला

इसके बाद के संस्करण में, हम तीन फाइलों बनाया है: config.py, update.py, और main.py

मॉड्यूल config.pyए और बी के वैश्विक चर को संग्रहीत करता है। में update.pyफ़ाइल, हम आयात config.pyमॉड्यूल और ए और बी के मूल्यों को संशोधित। इसी तरह, main.pyफ़ाइल में, हम दोनों config.pyऔर update.pyमॉड्यूल आयात करते हैं । अंत में, हम वैश्विक चरों के मूल्यों को प्रिंट और टेस्ट करते हैं कि वे बदले गए हैं या नहीं।

नेस्टेड फ़ंक्शंस में ग्लोबल

यहां बताया गया है कि आप नेस्टेड फ़ंक्शन में वैश्विक चर का उपयोग कैसे कर सकते हैं।

उदाहरण 5: नेस्टेड फ़ंक्शन में एक वैश्विक चर का उपयोग करना

 def foo(): x = 20 def bar(): global x x = 25 print("Before calling bar: ", x) print("Calling bar now") bar() print("After calling bar: ", x) foo() print("x in main: ", x)

आउटपुट है:

 बार कॉल करने से पहले: 20 कॉलिंग बार अब कॉलिंग बार के बाद: 20 x मुख्य में: 25

उपरोक्त कार्यक्रम में, हमने नेस्टेड फ़ंक्शन के अंदर एक वैश्विक चर घोषित किया bar()foo()फ़ंक्शन के अंदर , x का वैश्विक कीवर्ड का कोई प्रभाव नहीं है।

कॉल करने से पहले और बाद में bar(), चर x स्थानीय चर का मान लेता है x = 20foo()फ़ंक्शन के बाहर , चर x bar()फ़ंक्शन में परिभाषित मान लेगा अर्थात x = 25। ऐसा इसलिए है क्योंकि हमने फ़ंक्शन (स्थानीय स्कोप) के globalअंदर ग्लोबल वैरिएबल बनाने के लिए x में कीवर्ड का उपयोग किया है bar()

यदि हम bar()फ़ंक्शन के अंदर कोई बदलाव करते हैं, तो परिवर्तन स्थानीय दायरे से बाहर दिखाई देते हैं, अर्थात foo()

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