欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python虛擬機(jī)解釋器及運(yùn)行過程

 更新時間:2022年06月02日 17:02:53   作者:把蘋果咬哭的測試筆記  
這篇文章主要為大家介紹了python虛擬機(jī)解釋器及運(yùn)行過程的介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

python虛擬機(jī)解釋器

我閑來翻了翻幾年前就買的一本python的書,O'REILLY的【python學(xué)習(xí)手冊】,中譯版,很厚。

可惜,我看得非常少,這也是為什么我在簡歷上關(guān)于python頂天也就寫個熟悉,就這都擔(dān)心找虐。雖說java的學(xué)習(xí)價值更大,但是學(xué)了平時用不上,忘得快。再加上做題的時候,感覺還是用python來得更得心應(yīng)手些(廢話,別的你也不熟啊),于是我決定把書看完,記錄出以前不知道的,或者忽視掉的知識細(xì)節(jié)。

什么是python解釋器

1. 解釋性語言和編譯性語言

說到解釋器,大家之前多少都聽過解釋性語言和編譯性語言。首先,不管是這二位其中的誰,源代碼對于計算機(jī)來說,都是讀不懂的,計算機(jī)只認(rèn)識二進(jìn)制指令。所以,想讓程序被執(zhí)行,那么自然要先把源代碼轉(zhuǎn)化為二進(jìn)制指令,也就是機(jī)器碼。

那么,在什么時候進(jìn)行轉(zhuǎn)換呢?

有的語言要求必須提前把代碼一次性轉(zhuǎn)換完畢,這種就是編譯型語言,用的轉(zhuǎn)換工具就叫編譯器,比如C語言、C++。有的語言則可以一邊執(zhí)行一邊轉(zhuǎn)化,用到哪里了就轉(zhuǎn)哪里,這種就是解釋性語言,用的轉(zhuǎn)化工具叫解釋器,比如python、javascript。

java比較特殊,既有編譯又有解釋。但是編譯并沒有直接編譯成機(jī)器碼,而是編譯成字節(jié)碼,然后再拿到虛擬機(jī)中執(zhí)行。這種設(shè)計初衷是在跨平臺的同時兼顧執(zhí)行效率,這里就不展開了。

ok,上面就是鋪墊了。

2. python解釋器

python解釋器是一種讓其他程序運(yùn)行起來的程序,編寫的python代碼必須在解釋器中運(yùn)行,這東東已經(jīng)在我們安裝python的時候都裝上了。
所以,現(xiàn)在我print(hello world),就可以運(yùn)行了,控制臺可以看到文本的輸出。

3. python程序運(yùn)行過程

上面的一行代碼雖然簡單,但是python運(yùn)行它還是經(jīng)過了兩步操作:

將源代碼編譯成為“字節(jié)碼”轉(zhuǎn)發(fā)“字節(jié)碼”到“虛擬機(jī)”

字節(jié)碼編譯

可以理解為翻譯,把print(hello world)翻譯成字節(jié)碼,字節(jié)碼會保存在后綴名是.pyc的文件里,這文件其實(shí)就是編譯后的.py源代碼。

這些字節(jié)碼相較于源代碼,運(yùn)行起來速度要快得多。為什么?

因為在下一次運(yùn)行程序時,如果在上次保存了字節(jié)碼之后沒有修改過源代碼了,Python就會加載.pyc文件并且跳過編譯這個步驟。

當(dāng)必須要重新編譯時,python會自動檢查源文件和字節(jié)碼文件的時間戳,如果你又保存了源代碼,下次程序運(yùn)行時,字節(jié)碼將自動重新創(chuàng)建。

python虛擬機(jī)

Python Virtual Machine,簡寫為PVM,當(dāng)有字節(jié)碼文件之后,就會被發(fā)送到PVM里來執(zhí)行。

這里注意,PVM并不是指的一個獨(dú)立的程序,是不需要安裝的??梢园裀VM理解為Python的運(yùn)行引擎,是一個迭代運(yùn)行字節(jié)碼指令的大循環(huán),一個個的完成操作,直到結(jié)束。
從技術(shù)角度看,PVM才是“解釋器”的最后一步。

關(guān)于python的性能

大家都知道,python的缺點(diǎn)是運(yùn)行慢。但其實(shí)這里的慢也只是相對而言,跟C和C++這類編譯性語言相比,確實(shí)執(zhí)行速度還不夠快。

為什么?

上述也提到了python會把源代碼轉(zhuǎn)成字節(jié)碼,然后再將字節(jié)碼解釋出來。但是為了更好的跨平臺性,這里的字節(jié)碼是一種跟平臺無關(guān)的格式,所以并不是底層的二進(jìn)制代碼。到目前為止,只要不是對運(yùn)行速度有嚴(yán)苛要求的領(lǐng)域,比如數(shù)值計算或動畫這種,經(jīng)常需要核心處理單元至少以C語言的速度執(zhí)行,絕大多數(shù)的應(yīng)用,python還是可以勝任的。

相比于缺點(diǎn),python帶來開發(fā)效率的提升,相信也是很多人喜愛的的重要因素。

以上就是python虛擬機(jī)解釋器及運(yùn)行過程的詳細(xì)內(nèi)容,更多關(guān)于python虛擬機(jī)解釋器的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 基于Python實(shí)現(xiàn)智能停車場車牌識別計費(fèi)系統(tǒng)

    基于Python實(shí)現(xiàn)智能停車場車牌識別計費(fèi)系統(tǒng)

    這篇文章主要為大家介紹了如何利用Python實(shí)現(xiàn)一個智能停車場車牌識別計費(fèi)系統(tǒng),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動手嘗試一下
    2022-04-04
  • Python在Console下顯示文本進(jìn)度條的方法

    Python在Console下顯示文本進(jìn)度條的方法

    Python是一門與php有點(diǎn)像的編輯語言了,下文來給各位在利用Python實(shí)現(xiàn)進(jìn)度條了,對Python在Console下顯示文本進(jìn)度條的方法相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2016-02-02
  • 在windows系統(tǒng)中實(shí)現(xiàn)python3安裝lxml

    在windows系統(tǒng)中實(shí)現(xiàn)python3安裝lxml

    本文主要給大家簡單介紹了下在windows以及l(fā)inux系統(tǒng)中使用Python安裝LXML模塊的教程,非常簡單實(shí)用,有需要的小伙伴可以參考下
    2016-03-03
  • 完美解決Django2.0中models下的ForeignKey()問題

    完美解決Django2.0中models下的ForeignKey()問題

    這篇文章主要介紹了完美解決Django2.0中models下的ForeignKey()問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Matplotlib scatter繪制散點(diǎn)圖的方法實(shí)現(xiàn)

    Matplotlib scatter繪制散點(diǎn)圖的方法實(shí)現(xiàn)

    這篇文章主要介紹了Matplotlib scatter繪制散點(diǎn)圖的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • python數(shù)據(jù)可視化之條形圖畫法

    python數(shù)據(jù)可視化之條形圖畫法

    這篇文章主要為大家詳細(xì)介紹了python數(shù)據(jù)可視化之條形圖畫法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 使用Python刷淘寶喵幣(低階入門版)

    使用Python刷淘寶喵幣(低階入門版)

    這篇文章主要介紹了使用Python刷淘寶喵幣(低階入門版)的相關(guān)資料,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • Python正則表達(dá)式指南 推薦

    Python正則表達(dá)式指南 推薦

    本文介紹了Python對于正則表達(dá)式的支持,包括正則表達(dá)式基礎(chǔ)以及Python正則表達(dá)式標(biāo)準(zhǔn)庫的完整介紹及使用示例。本文的內(nèi)容不包括如何編寫高效的正則表達(dá)式、如何優(yōu)化正則表達(dá)式,這些主題請查看其他教程。
    2018-10-10
  • Python3 安裝PyQt5及exe打包圖文教程

    Python3 安裝PyQt5及exe打包圖文教程

    今天小編就為大家分享一篇Python3 安裝PyQt5及exe打包圖文教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python 使用類寫裝飾器的小技巧

    Python 使用類寫裝飾器的小技巧

    裝飾器是一個返回函數(shù)的函數(shù)。寫一個裝飾器,除了最常見的在函數(shù)中定義函數(shù)以外,Python還允許使用類來定義一個裝飾器。這篇文章給大家分享Python 使用類寫裝飾器的小技巧,一起看看吧
    2018-09-09

最新評論