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