python作為一種動態語言,其實是個解譯器軟體包。
當Python執行腳本時,在程式碼開始處理之前,Python也會執行一些步驟。 (推薦學習:Python影片教學)
第一步是編譯成所謂的“字節碼”,如果Python進程擁有寫入權限,將把程式的字節碼保存為一個以.pyc為擴展名的文件, 如果Python無法在機器上寫入字節碼,程式仍然可以工作:字節碼將會在內存中生成並在程式結束時簡單地丟棄。一旦程式編譯成字節碼(或字節碼從已經存在的.pyc檔案中載入),之後的字節碼會送到通常稱為Python虛擬機器(Python VirtualMachine,簡稱為PVM)上來執行。
寫完的py文件,先翻譯成字節碼文件(隱藏後綴pyc),然後在用PVM(虛擬機器)把字節碼自動編譯,之後解釋到硬體。
如果已經形成過pyc文件,那麼你的py文件沒有改動,機器重新解釋的時候會跳過翻譯字節碼步驟,首先查看你的.py跟.pyc文件時間戳,如果沒有修改那麼直接執行pyc文件,否則會重新翻譯字節碼。
PVM不是一個獨立的程序,是Python的運作引擎,不需要安裝。事實上PVM就是迭代運行字節碼指令的一個大循環,一個接一個地完成操作。
因此Python具有更多的動態語言特性:在執行時,Python程式去建置並執行另一個Python程式是有可能的,而且往往是非常方便的。例如,eval和exec內建模組,能夠接受並執行包含Python程式碼的字串。使用以下程式碼可以查看add函數的字節碼:
import dis def add(a,b): sum=a+b return sum print(dis.dis(add))
更多Python相關技術文章,請造訪Python教學欄位進行學習!
以上是python如何運行程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!