टीएल के लिए पाइथन लोकल(); डीआर: मुझे एक स्थानीय() जो एक दायरे में दिखता है।स्कोप
हाय, सब।
मैं कुछ रसायनज्ञ मित्रों को पाइथन प्रोग्रामिंग पर एक कोर्स पढ़ रहा हूं, और मैं यह सुनिश्चित करना चाहता हूं कि मैं वास्तव में गुंजाइश समझता हूं।
पर विचार करें:
def a():
x = 1
def b():
print(locals())
print(globals())
b()
स्थानीय लोगों का एक खाली पर्यावरण प्रिंट, और वैश्विक सामान्य वैश्विक प्रिंट करता है। मैं उस पर्यावरण तक पहुंच कैसे प्राप्त करूं जहां एक्स संग्रहीत है? स्पष्ट रूप से दुभाषिया इसके बारे में जानता है क्योंकि मैं इसका उल्लेख कर सकता हूं।
संबंधित: स्कोपिंग कब होती है?
def a():
x = 1
def b():
a = x+2
x = 3
b()
तुम बाहर टिप्पणी यदि x = 3, कोड काम करता है: एक = x + 2 केवल अगर एक्स = 3 शामिल किया गया है पर निम्नलिखित nameErrors। क्या इसका मतलब यह है कि पाइथन इसे समझने से पहले कोड पर एक लेक्सिकल-स्कोप पास बनाता है?
क्या आपको एक सूची चाहिए? क्योंकि आप प्रिंट ग्लोबल्स के बाद प्रिंट एक्स कर सकते हैं। संपादित करें: अगर आप प्रिंट एक्स के साथ एक्स तक पहुंचते हैं तो यह भूलना भूल जाता है कि एक्स: 1 से भरा स्थानीय भी है। –
संभावित डुप्लिकेट [पाइथन में नेमस्पेस कॉल करने से स्थानीय लोगों को प्राप्त करें] (http://stackoverflow.com/questions/6618795/get-locals-from-calling-namespace-in-python) – piokuc