चर नाम (पहचानकर्ता) हैं जो वस्तुओं को मैप करते हैं। एक नाम स्थान चर नामों (कुंजी) और उनकी संबंधित वस्तुओं (मानों) का एक शब्दकोश है।
एक पायथन स्टेटमेंट स्थानीय नामस्थान और वैश्विक नामस्थान में चर का उपयोग कर सकता है। यदि एक स्थानीय और एक वैश्विक चर का एक ही नाम है, तो स्थानीय चर वैश्विक चर को छायांकित करता है।
प्रत्येक फ़ंक्शन का अपना स्थानीय नामस्थान होता है। वर्ग विधियाँ सामान्य कार्यों के समान दायरे के नियम का पालन करती हैं।
पायथन शिक्षित अनुमान लगाता है कि चर स्थानीय हैं या वैश्विक। यह मानता है कि किसी फ़ंक्शन में मान निर्दिष्ट कोई भी चर स्थानीय है।
इसलिए, किसी फ़ंक्शन के भीतर वैश्विक चर के लिए मान निर्दिष्ट करने के लिए, आपको पहले वैश्विक विवरण का उपयोग करना होगा।
बयान वैश्विक VarName पायथन को बताता है कि VarName एक वैश्विक चर है। पायथन चर के लिए स्थानीय नाम स्थान खोजना बंद कर देता है।
उदाहरण के लिए, हम ग्लोबल नेमस्पेस में एक वैरिएबल मनी को परिभाषित करते हैं। फ़ंक्शन मनी के भीतर, हम मनी को एक मान प्रदान करते हैं, इसलिए पायथन मनी को एक स्थानीय चर के रूप में मानता है। हालांकि, हमने स्थानीय वैरिएबल मनी के मूल्य को सेट करने से पहले एक्सेस किया, इसलिए एक अनबाउंडलोकल एरर परिणाम है। वैश्विक बयान पर टिप्पणी न करने से समस्या ठीक हो जाती है।
#!/usr/bin/python Money = 2000 def AddMoney(): # Uncomment the following line to fix the code: # global Money Money = Money + 1 print Money AddMoney() print Money