मैं पाइथन के लिए नया हूं, इसलिए यह शायद एक साधारण स्कॉइंग प्रश्न है। एक अजगर फ़ाइल (मॉड्यूल) में निम्न कोड मुझे थोड़ा भ्रमित है:यदि किसी कथन में प्रारंभ किए गए चर का दायरा क्या है?
if __name__ == '__main__':
x = 1
print x
अन्य भाषाओं मैं में काम किया है में, इस कोड एक अपवाद फेंक, x
चर के रूप में if
बयान करने के लिए स्थानीय है और होना चाहिए इसके बाहर मौजूद नहीं है। लेकिन यह कोड निष्पादित करता है, और प्रिंट करता है 1. क्या कोई इस व्यवहार को समझा सकता है? क्या मॉड्यूल ग्लोबल/पूरे मॉड्यूल में उपलब्ध सभी चर?
एक और प्रश्नोत्तरी आपको इस बारे में पता नहीं हो सकता है: यदि उपरोक्त 'if' कथन सत्य नहीं है (यानी, '__name__' * नहीं'' __main __ 'है, उदाहरण के लिए जब आप इसे निष्पादित करने के बजाय मॉड्यूल आयात करते हैं शीर्ष-स्तर), फिर 'x' कभी बाध्य नहीं होगा, और बाद में' प्रिंट x' कथन 'नाम' फेंक देगा: नाम 'x' परिभाषित नहीं किया गया है '। – Santa