पायथन में हम चर, कार्यों, पुस्तकालयों और मॉड्यूल आदि से निपटते हैं। एक मौका है कि आप जिस चर का उपयोग करने जा रहे हैं उसका नाम पहले से ही किसी अन्य चर के नाम के रूप में या किसी अन्य फ़ंक्शन या किसी अन्य विधि के नाम के रूप में मौजूद है। ऐसे परिदृश्य में, हमें यह जानने की जरूरत है कि इन सभी नामों को एक पायथन प्रोग्राम द्वारा कैसे प्रबंधित किया जाता है। यह नाम स्थान की अवधारणा है।
नाम स्थान की तीन श्रेणियां निम्नलिखित हैं
-
लोकल नेमस्पेस:किसी प्रोग्राम द्वारा घोषित फंक्शन्स और वेरिएबल्स के सभी नाम इस नेमस्पेस में रखे जाते हैं। यह नाम स्थान तब तक मौजूद रहता है जब तक प्रोग्राम चलता है।
-
ग्लोबल नेमस्पेस:इस नेमस्पेस में फंक्शन्स और अन्य वेरिएबल्स के सभी नाम होते हैं जो कि पायथन प्रोग्राम में उपयोग किए जा रहे मॉड्यूल में शामिल होते हैं। इसमें वे सभी नाम शामिल हैं जो स्थानीय नाम स्थान का हिस्सा हैं।
-
बिल्ट-इन नेमस्पेस:यह नेमस्पेस का उच्चतम स्तर है जो कि पाइथन दुभाषिया के हिस्से के रूप में उपलब्ध डिफ़ॉल्ट नामों के साथ उपलब्ध है जो प्रोग्रामिंग वातावरण के रूप में लोड किया गया है। इसमें ग्लोबल नेमस्पेस शामिल है जो बदले में स्थानीय नेमस्पेस को शामिल करता है।
पायथन में दायरा
उपलब्ध होने पर नामस्थान का जीवनकाल होता है। इसे दायरा भी कहते हैं। इसके अलावा दायरा कोडिंग क्षेत्र पर निर्भर करेगा जहां चर या वस्तु स्थित है। आप नीचे दिए गए कार्यक्रम में देख सकते हैं कि आंतरिक लूप में घोषित चर बाहरी लूप के लिए कैसे उपलब्ध हैं, लेकिन इसके विपरीत नहीं। कृपया यह भी ध्यान दें कि कैसे बाहरी फ़ंक्शन का नाम भी वैश्विक चर का हिस्सा बन जाता है।
उदाहरण
prog_var = 'Hello' def outer_func(): outer_var = 'x' def inner_func(): inner_var = 'y' print(dir(), ' Local Variable in Inner function') inner_func() print(dir(), 'Local variables in outer function') outer_func() print(dir(), 'Global variables ')
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
आउटपुट
['inner_var'] Local Variable in Inner function ['inner_func', 'outer_var'] Local variables in outer function ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'outer_func', 'prog_var'] Global variables