python應用:圖形介面開發、人工智慧、爬蟲、系統網路運維、大資料、雲計算系統、web全棧開發等
高階語言分為兩種型別:編譯型和解釋型。通俗說,編譯型就是將所有的東西一下子翻譯完,首先將執行前先由編譯器將高階語言**編譯為對機器可以執行的可執行檔案(.exe .dll .ocx)。例如c/c++,生成的可執行檔案exe檔案。 編譯只執行了一次,執行期間不需要再翻譯,所以編譯型語言的程式執行效率高。解釋型就是在執行程式的時候才翻譯,翻譯器將高階語言**翻譯成易於執行的中間**,並由專門的直譯器(例如瀏覽器、虛擬機器)逐一將中間**解釋成機器碼並執行,每乙個語句都是執行的時候才能繼續翻譯。解釋性語言每執行一次要翻譯一次,效率表較低。
python語言編寫的程式首先由將原始碼編譯生成中間位元組碼(.pyc),再由python直譯器根據中間位元組碼解釋執行,所以說python是先編譯後解釋的高階程式語言。
python執行的基本流程圖如下:
例如:
執行一下
直接走第一條線,生成的中間位元組碼存在記憶體中看不見,沒被持久化存在磁碟,故看不見.pyc檔案
執行一下
走第四條線,會編譯y.py生成中間位元組碼,把生成的位元組碼儲存到y.pyc,可見,同時會記錄原始碼真實修改時間
執行一下,結果不變
直接執行y.pyc,可以執行
y.py修改後的時間與y.pyc儲存的修改時間不同,這時再次執行y.pyc,結果沒有變化,還是沒修改以前的
現在再次執行x.py
先編譯原始碼y,生成中間位元組碼,根據y的中間位元組碼解釋執行,先輸出yyyy和1,根據x的中間位元組碼解釋執行輸出***123和yyyy和1
這時y.pyc重新更新,再次記錄記錄原始碼最後寫改時間,執行一下y.pyc,結果發生了更新變化
總的來說,python是先編譯後執行的語言,中間位元組碼檔案可以持久化編譯結果,提公升了程式執行效率。對於持久化關鍵看import,x.py不會持久化,但是import裡面y.py會被持久化。也可以手動持久化 python -m py_compile x.py,持久化後可以直接執行,但是執行x.py不會執行x.pyc
python程式的執行過程
python先把 編譯成位元組碼,在對位元組碼解釋執行。位元組碼在python 虛擬機器程式裡對應的是 pycodeobject 物件。pyc檔案是位元組碼在磁碟上的表現形式。pyc的建立時機是模組載入的時候,即 import python test.py會對 test.py 進行編譯成位元組碼並解...
程式執行過程
要理解乙個程式的執行過程,首先要理解什麼是編譯器。我們用c語言寫的程式,計算機只能識別機器語言 二進位制指令 計算機並不能理解。因此,必須 將c語言轉換為機器語言。編譯器就是用來實現這一功能的。編譯器將源 檔案按照一定的對應規則映射程計算機能夠識別的二進位制指令 關於原始檔 目標檔案和可執行檔案 原...
程式執行過程
程式的執行過程大致分為以下四的步驟 1 預處理 2 編譯 3 彙編 4 鏈結 1.關於預處理 預處理階段的工作基本上是對源程式做 替代 主要有 巨集替換 條件編譯 標頭檔案展開 去除注釋 經過這番替換之後,就會生成乙個沒有巨集定義,沒有條件編譯 沒有特殊符號的輸出檔案。2.關於編譯 編譯階段的工作就...