नेमस्पेस पायथन में स्कोप (scope) को लागू करने का एक तरीका है। पायथन में प्रत्येक पैकेज, मॉड्यूल, क्लास, फ़ंक्शन और मेथड फ़ंक्शन का अपना एक "नेमस्पेस" होता है जिसमें वेरिएबल नामों को हल (resolve) किया जाता है।
नेमस्पेस कैसे काम करता है?
जब कोई फ़ंक्शन, मॉड्यूल या पैकेज मूल्यांकन (evaluate) किया जाता है (यानी निष्पादन शुरू होता है), तो एक नेमस्पेस बनाया जाता है। इसे "मूल्यांकन संदर्भ" (evaluation context) के रूप में सोचें। जब फ़ंक्शन आदि का निष्पादन समाप्त होता है, तो नेमस्पेस हटा दिया जाता है और वेरिएबल भी हटा दिए जाते हैं।
इसके अलावा एक ग्लोबल नेमस्पेस भी होता है जिसका उपयोग तब किया जाता है जब नाम लोकल नेमस्पेस में नहीं मिलता।
नेमस्पेस लुकअप नियम
प्रत्येक वेरिएबल नाम की जांच पहले लोकल नेमस्पेस (फ़ंक्शन का शरीर, मॉड्यूल आदि) में की जाती है, फिर ग्लोबल नेमस्पेस में।
वेरिएबल निर्माण
वेरिएबल आमतौर पर केवल लोकल नेमस्पेस में बनाए जाते हैं। global और nonlocal स्टेटमेंट अन्य नेमस्पेस में वेरिएबल बना सकते हैं।
मुख्य बिंदु
- प्रत्येक कोड ब्लॉक का अपना नेमस्पेस होता है
- लोकल → ग्लोबल → बिल्ट-इन क्रम में खोज होती है
- नेमस्पेस निष्पादन के दौरान बनते और नष्ट होते हैं