2011-03-14 30 views
109

想象一下,需要很長時間才能運行的python腳本,如果我在運行時修改它,會發生什麼?結果會不一樣嗎?如果我在運行時修改了Python腳本,會發生什麼?

+1

程序被加載到主內存前。如果您更改源文件,則什麼都不會發生。想象一下CPU會從硬盤讀取指令... – 2011-03-14 09:50:29

+11

@Felix:這就是所謂的「就地執行」(XIP)。 – 2011-03-14 09:52:03

+0

@Ignacio:有趣,我不知道。謝謝:) – 2011-03-14 09:55:05

回答

131

什麼也沒有,因爲python預編譯你的腳本到PYC文件並從它啓動。 只有當某種異常的情況出現你可能會得到錯誤的解釋,因爲線X可能是不同的代碼,這是啓動腳本

+9

不一定要寫入文件。 – 2011-03-14 09:50:07

+43

但是如果你在運行時重新啓動,當新的pyc文件覆蓋舊的,會導致程序中已經運行或沒有運行的問題? – dcousens 2012-05-03 01:31:54

+12

什麼都沒有發生。我也在一個小測試中檢查過它。會發生什麼:pyc只是編譯器。這個編譯器被加載到RAM中,然後執行。所以總是可以改變程序,重新編譯並運行另一個實例,例如在不同的控制檯中。 – Chris 2014-11-07 12:28:29

相關問題