關於Python的執行原理你瞭解嗎?
人工智慧的火熱讓Python成為近兩年來發展最好的開發語言,Python已經被越來越多的人所熟知, Python開發工程師水漲船高的薪資也吸引著更多的人進入這個行業。一名合格的Python工程師怎麼能不知道Python執行的執行原理是什麼呢?下面,小千就給大家講解一下。
我們都知道,使用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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 你瞭解一條sql的執行順序嗎SQL
- 你真的瞭解EF嗎?關於EntityFramework的高階優化Framework優化
- 關於資訊保安,這些你都瞭解嗎?
- 關於Ae和Pr的的區別,你瞭解對了嗎?
- python關於執行緒的一點介紹Python執行緒
- python關於pymysql 執行sql語句in的用法PythonMySql
- 打包工具的配置教程見的多了,但它們的執行原理你知道嗎?
- java多執行緒程式設計:你真的瞭解執行緒中斷嗎?Java執行緒程式設計
- Java執行緒安全面試題,你真的瞭解嗎?Java執行緒面試題
- Python 多執行緒無用?深入總結 二(深入瞭解GIL 執行緒守護 執行緒程式CPU關係)Python執行緒
- 瞭解可執行的NPM包NPM
- java 多執行緒(關於Thread的講解)Java執行緒thread
- 關於js執行緒問題的解讀JS執行緒
- 關於Python指令碼中執行adb命令的方法Python指令碼
- 關於“等保測評”的這些疑問,你都瞭解嗎?
- 關於Linux系統,這些知識你都瞭解嗎?Linux
- 瞭解 Android 的程式和執行緒Android執行緒
- Golang 包瞭解以及程式的執行Golang
- Python是什麼?你對Python瞭解嗎?Python
- 關於Python能再Pycharm上執行而在VSCode下無法執行PythonPyCharmVSCode
- 關於Synchronized你瞭解多少?synchronized
- 你真的瞭解python嗎?這篇文章帶你快速瞭解!Python
- 關於微服務,這些你都瞭解嗎-微服務介紹微服務
- python有多執行緒嗎Python執行緒
- 瞭解Javascript中的執行上下文和執行堆疊JavaScript
- 學習Python,這些你瞭解嗎?Python
- 關於 Promise 的執行順序Promise
- python–執行緒同步原語Python執行緒
- 瞭解 MySQL的資料行、行溢位機制嗎?MySql
- 10個關於等級保護的認知誤區,你都瞭解嗎?
- 關於繼承,你瞭解多少?繼承
- 關於程式與執行緒的一個簡單解釋執行緒
- Python讀寫檔案你真的瞭解嗎?Python
- Python有哪些優缺點,你瞭解嗎?Python
- Python哪些框架最常見?你都瞭解嗎?Python框架
- 《【面試突擊】— Redis篇》-- Redis的執行緒模型瞭解嗎?為啥單執行緒效率還這麼高?面試Redis執行緒模型
- 關於redis單執行緒的分析Redis執行緒
- 關於執行緒設計的感受執行緒