def fun():
if False:
x=3
print(locals())
print(x)
fun()
उत्पादन और त्रुटि संदेश संकलन:अजगर स्थानीय चर सिद्धांत
{}
---------------------------------------------------------------------------
UnboundLocalError Traceback (most recent call last)
<ipython-input-57-d9deb3063ae1> in <module>()
4 print(locals())
5 print(x)
----> 6 fun()
<ipython-input-57-d9deb3063ae1> in fun()
3 x=3
4 print(locals())
----> 5 print(x)
6 fun()
UnboundLocalError: local variable 'x' referenced before assignment
मैं सोच रहा हूँ कैसे अजगर दुभाषिया काम करता है। ध्यान दें कि x = 3 बिल्कुल नहीं चलता है, और इसे स्थानीय चर के रूप में नहीं माना जाना चाहिए, जिसका अर्थ है कि त्रुटि "नाम 'x' परिभाषित नहीं की जाएगी"। लेकिन कोड और त्रुटि संदेश में देखो, यह मामला नहीं है। क्या कोई इस स्थिति के पीछे अजगर दुभाषिया के संकलन के तंत्र सिद्धांत को समझा सकता है?
संभावित डुप्लिकेट http://stackoverflow.com/q/7969949/3758972 –
यह प्रासंगिक हो सकता है: [स्कोपिंग नियमों का संक्षिप्त विवरण] (http://stackoverflow.com/questions/291978/short-description-of- स्कोपिंग-नियम) –
यदि नीचे दिए गए उत्तरों में से कोई एक आपकी समस्या को हल करता है, तो आपको इसे स्वीकार करना चाहिए (उचित उत्तर के बगल में स्थित चेक मार्क पर क्लिक करें)। यह दो चीजें करता है। यह सभी को यह बताता है कि आपकी समस्या को आपकी संतुष्टि के लिए हल किया गया है, और यह वह व्यक्ति देता है जो सहायता के लिए आपको क्रेडिट करने में मदद करता है। एक पूर्ण स्पष्टीकरण के लिए [यहां] (http://meta.stackexchange.com/a/5235) देखें। –