यदि मैं पायथन स्क्रिप्ट को संशोधित कर रहा हूं तो यह क्या होगा?


219

एक अजगर लिपि की कल्पना करें, जिसे चलने में लंबा समय लगेगा, अगर मैं इसे चलाते समय इसे संशोधित करूँ तो क्या होगा? क्या परिणाम अलग होगा?


8
कार्यक्रम को आपकी मुख्य मेमोरी में लोड किया गया है। यदि आप स्रोत फ़ाइल बदलते हैं, तो कुछ भी नहीं होता है। कल्पना कीजिए कि सीपीयू हार्ड ड्राइव से निर्देश पढ़ेगा ...
फेलिक्स क्लिंग

15
@ फेलिक्स: इसे "एक्स्यूट-इन-प्लेस" (एक्सआईपी) कहा जाता है।
इग्नासियो वाज़क्वेज़-अब्राम्स

@ इग्नासियो: दिलचस्प है, मुझे नहीं पता था कि। धन्यवाद :)
फेलिक्स क्लिंग

3
आप गतिशील रूप से मॉड्यूल के कोड को पुनः लोड कर सकते हैं, देखें stackoverflow.com/questions/437589/…
Iliyan Bobev

2
ध्यान दें कि Windows बैच फ़ाइलों है जगह में निष्पादित, तो यह एक काल्पनिक सवाल नहीं है, वहाँ भाषाओं कि व्यवहार इस तरह से कर रहे हैं।
योयो

जवाबों:


259

कुछ भी नहीं, क्योंकि पायथन आपकी स्क्रिप्ट को PYC फ़ाइल में रखता है और लॉन्च करता है।

हालाँकि, यदि किसी प्रकार का अपवाद होता है, तो आपको थोड़ी भ्रामक व्याख्या मिल सकती है, क्योंकि स्क्रिप्ट शुरू करने से पहले लाइन X में भिन्न कोड हो सकते हैं।


10
जरूरी नहीं कि फाइल में ही हो।
इग्नासियो वाज़क्वेज़-अब्राम्स

60
लेकिन क्या होगा यदि आप दौड़ते समय फिर से लॉन्च करते हैं, जब नई पीइसी फाइलें पुरानी को अधिलेखित कर देती हैं, तो क्या इससे उस कार्यक्रम में समस्या पैदा होगी जो पहले से चल रहा था या नहीं?
deceleratedcaviar

26
कुछ नहीं हुआ। मैंने इसे एक छोटे परीक्षण में भी जांचा। क्या होता है: pyc केवल कंपाइल है। और यह संकलित रैम में लोड हो जाता है और फिर निष्पादित होता है। इसलिए यह हमेशा संभव है कि कार्यक्रम को बदल दें, एक अलग कंसोल में उदाहरण के लिए फिर से खोलें और चलाएं।
क्रिस

7
@ क्रिस ने एक कंसोल में अपनी पाइथन स्क्रिप्ट का एक उदाहरण शुरू किया। जब वह चल रहा था, मैंने कोड की दो लाइनें बदल दीं और एक अलग कंसोल में एक और उदाहरण शुरू किया। थोड़ी देर बाद, मुझे पहली कंसोल से कोड की दो पंक्तियों के बारे में एक त्रुटि मिली जिसे मैंने इसे शुरू करने के बाद बदल दिया! pls मदद
double_j

14
@ मुझे लगता है कि मुझे पता है कि यहाँ क्या होता है। यदि आप एक स्क्रिप्ट को संशोधित करते हैं और इसे चलाने के दौरान सहेजते हैं, और पिछले संस्करण की त्रुटियां, ट्रेसबैक रीडआउट में, यह फ़ाइल के वर्तमान संस्करण को खोलती है और ट्रेसबैक को आपके द्वारा शुरू किए जाने से अलग दिखती है। मैंने खुद कई मौकों पर इसे देखा है।
डबल_ज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.