關於Python的執行原理你瞭解嗎?

千鋒武漢發表於2021-05-24

  人工智慧的火熱讓Python成為近兩年來發展最好的開發語言,Python已經被越來越多的人所熟知, Python開發工程師水漲船高的薪資也吸引著更多的人進入這個行業。一名合格的Python工程師怎麼能不知道Python執行的執行原理是什麼呢?下面,小千就給大家講解一下。

圖片2

  我們都知道,使用C、C++之類的編譯性語言編寫的程式,是需要從原始檔轉換成計算機使用的機器語言,經過連結器連結之後形成了二進位制可執行檔案。執行該程式的時候,就可以二進位制程式從硬碟載入到記憶體中並執行。

  但是對於Python而言,Python原始碼不需要編譯成二進位制程式碼,它可以直接從原始碼執行程式序。Python直譯器將原始碼轉換為位元組碼,然後把編譯好的位元組碼轉發到Python虛擬機器(PVM)中進行執行。接下來,透過一張圖來描述 Python程式的執行過程,當我們執行Python程式的時候,Python直譯器會執行兩個步驟:

  1、把原始碼編譯成位元組碼。編譯後的位元組碼是特定於Python的一種表現形式,它不是二進位制的機器碼,需要進一步編譯才能被機器執行,這也是Python程式碼無法執行的像C、C++一樣快的原因。如果Python程式在機器上擁有寫入許可權,那麼它將把程式的位元組碼儲存為一個以.pyc為副檔名的檔案,如果Python無法在機器上寫入位元組碼,那麼宇節碼將會在記憶體中生成並在程式結束時自動丟棄。在構建程式的時候最好給Python賦上在計算機上寫的許可權,這樣只要原始碼沒有改變,生成的.pyc檔案可以重複利用,提高執行效率。

  2、 把編譯好的位元組碼轉發到Python虛擬機器(PVM)中進行執行。PVM是Python Virtual Machine的簡稱,它是Python的執行引擎,是Python系統的一部分,它是迭代執行位元組碼指令的一個大迴圈,一個接一個地完成操作。

  隨著人工智慧、大資料行業的發展,未來Python的市場前景必然很好,想學的就抓緊吧!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2773602/,如需轉載,請註明出處,否則將追究法律責任。

相關文章