जब मैं चलाएँ:अजगर कार्यकारी और __name__
exec "print __name__"
यह __main__
प्रिंट करता है।
लेकिन जब मैं चलाएँ:
exec "print __name__" in {}
यह __builtin__
प्रिंट करता है।
__main__
प्रिंट करने के लिए दूसरा उदाहरण कैसे बनाएं?
मैं जो हासिल करने का प्रयास करता हूं वह exec
के साथ कोड का एक टुकड़ा चलाने के लिए है ताकि ऐसा लगता है कि यह कमांड लाइन से चलाया गया था।
मैं साफ़ दायरे के साथ कोड को ट्यून करना चाहता हूं लेकिन दूसरा उदाहरण कोड को if __name__ == "__main__"
पर भरोसा करता है। इसे कैसे ठीक करें?
दुर्भाग्य से मैं डिस्क पर एक अस्थायी फ़ाइल नहीं बना सकता। सादे स्ट्रिंग को निष्पादित करने का कोई तरीका नहीं है जैसे कि यह कमांड लाइन से चलाया गया हो? और आपके उत्तर के बारे में एक और सवाल: ऐसा लगता है जैसे यह आयात कर रहा था (जैसा कि 'आयात' में) फ़ाइल - क्या यह फ़ाइल आयात या निष्पादित करता है? क्या कोई अंतर है? –
मॉड्यूल आयात करने के लिए, इसे * निष्पादित किया जाना है। –
ध्यान दें कि '__name__ ==' __main __ '' कामों की अपेक्षा का अर्थ है कि आप यहां मॉड्यूल निष्पादित कर रहे हैं। –