Python如何運行程式 Python解釋器簡介 解釋器是一種讓其他程式運行起來的程式。 Python解釋器將讀取程式,並按照其中的命令執行,得出結果。 解釋器是代碼與機器的電腦硬體之間的軟體邏輯層。 解釋器本身可以用C程式實現,或者一些Java類實現。 程式執行 程式員視角 Python程式僅是 ...
Python如何運行程式
Python解釋器簡介
- 解釋器是一種讓其他程式運行起來的程式。
- Python解釋器將讀取程式,並按照其中的命令執行,得出結果。
- 解釋器是代碼與機器的電腦硬體之間的軟體邏輯層。
- 解釋器本身可以用C程式實現,或者一些Java類實現。
程式執行
程式員視角
- Python程式僅是一個包含Python語句的文本文件。
- Python文件是以.py結尾的。從技術上講,這種命名方案在被“導入”時才是必須的。
- Python解釋器講從頭至尾按照順序運行文件中的語句。
Python解釋器視角
位元組碼編譯
- Python內部會先將源代碼編譯成位元組碼的形式。位元組碼是一種低級的,與平臺無關的表現形式。
- 源文件的修改和Python版本的改變都會觸發新的位元組碼的編譯。
- 位元組碼只會針對那些被導入的文件而生成,而不是頂層的執行腳本。(嚴格來說,這是一種針對“導入”的優化)
Python虛擬機(PVM)
- 一旦程式編譯成位元組碼,之後的位元組碼發送到通常稱為Python虛擬機(PVM)的程式上來執行。
- 本質上PVM就是迭代運行位元組碼指令的一個大迴圈,一個接一個地完成操作。
- 從技術上講,它只是所謂“Python解釋器”的最後一步。
性能的含義
- Python的工作中通常沒有構建或“make”的步驟。
- Python位元組碼不是機器的二進位代碼。
- PVM仍需解釋位元組碼,並且位元組碼指令比CPU指令需要更多的工作。
- 與其他經典解釋器不同,Python仍有內部編譯的步驟:Python並不需要反覆地重新分析和重新分解每一行源代碼語句的文本。
- 純Python代碼的運行速度介於傳統編譯語言和傳統解釋語言之間。
開發的含義
- Python的執行模型導致開發和執行的環境沒有區別。
- 在Python中,編譯器總是在運行時出現,並且是運行系統的一部分。