1. 程式人生 > >Python 指令碼執行過程

Python 指令碼執行過程

Python是指令碼語言,簡單方便,缺點是執行速度慢,不能對程式碼進行加密,跨平臺,可以在互動式環境下執行也可以在整合環境下執行。

Python有兩個版本,但是兩個版本不相容

指令碼執行過程1、Python的執行過程在執行Python檔案時,直譯器會先將程式碼進行解釋,解釋後的結果就是PyCodeObject(存放在記憶體中),程式碼執行完成之後會將PyCodeObject回寫到一個.pyc檔案中。Python在執行的過程中只會將import匯入的檔案在解釋之後寫到.pyc檔案中,主程式中的程式碼在解釋後是不會回寫到.pyc檔案的,這是因為Python在設計時認為只有import匯入的檔案才可能是會被再次使用的,在下次使用的時候會先檢查匯入的模組.py檔案時候發生改變,如果沒有改變就直接使用上次生成的.pyc檔案,如果發生改變就是再重新生成一份.pyc檔案。驗證的方式:寫一個模組匯入到另外一個程式檔案,執行主程式檔案,被匯入的模組資料夾中就會生成一個.pyc檔案,主程式所在的資料夾不會生成.pyc檔案程式的執行都是從主函式開始從上向下一行一行的執行。2、解釋型和編譯型Python是解釋型語言,在執行的時候是通過直譯器對程式碼進行解釋之後再執行編譯型語言:計算機只能識別機器語言不能夠識別高階語言,所以在執行程式碼的時候需要先通過編譯器對程式碼進行編譯生成機器能夠識別的機器語言,然後直接執行編譯後的檔案,C語言就是通過編譯器執行的語言解釋型語言:解釋型語言不需要編譯,在執行的時候通過對語句做出解釋然後再執行,Python就是解釋型語言對比一下兩種語言的執行過程:編譯型語言在執行的時候執行的是編譯過之後的檔案,不需要再做出編譯直接執行。解釋型語言在執行檔案的時候先解釋然後再執行解釋後的機器語言。所以相比較而言解釋型語言在執行的時候速度比編譯型語言慢一下。Python有很多優化過後的直譯器在執行速度上有一定的改善。也有一些高階語言是結合了編譯和解釋兩種方式之後執行程式碼,Java虛擬機器將Java程式碼通過編譯器編譯成位元組碼檔案,在執行的時候通過直譯器再解釋成機器檔案,這就是先編譯後解釋的過程。