最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

python虛擬機(jī)解釋器

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

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

什么是python解釋器

1. 解釋性語(yǔ)言和編譯性語(yǔ)言

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

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

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

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

ok,上面就是鋪墊了。

2. python解釋器

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

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

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

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

字節(jié)碼編譯

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

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

因?yàn)樵谙乱淮芜\(yùn)行程序時(shí),如果在上次保存了字節(jié)碼之后沒(méi)有修改過(guò)源代碼了,Python就會(huì)加載.pyc文件并且跳過(guò)編譯這個(gè)步驟。

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

python虛擬機(jī)

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

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

關(guān)于python的性能

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

為什么?

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

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

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

相關(guān)文章

  • Python?for循環(huán)詳細(xì)講解(附代碼實(shí)例)

    Python?for循環(huán)詳細(xì)講解(附代碼實(shí)例)

    這篇文章主要給大家介紹了關(guān)于Python?for循環(huán)詳細(xì)講解的相關(guān)資料,在Python中,for循環(huán)是一種常用的控制結(jié)構(gòu),用于遍歷序列(如列表、元組、字符串等)中的元素,需要的朋友可以參考下
    2024-03-03
  • Python 正則 re.compile 真的必需嗎

    Python 正則 re.compile 真的必需嗎

    本文主要介紹了Python 正則 re.compile 真的必需嗎,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Python連接Oracle數(shù)據(jù)庫(kù)的操作指南

    Python連接Oracle數(shù)據(jù)庫(kù)的操作指南

    Oracle數(shù)據(jù)庫(kù)是一種強(qiáng)大的企業(yè)級(jí)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),而Python是一門流行的編程語(yǔ)言,兩者的結(jié)合可以提供出色的數(shù)據(jù)管理和分析能力,本教程將詳細(xì)介紹如何在Python中連接Oracle數(shù)據(jù)庫(kù),并演示常見(jiàn)的數(shù)據(jù)庫(kù)任務(wù),需要的朋友可以參考下
    2023-11-11
  • Python實(shí)現(xiàn)矩陣加法和乘法的方法分析

    Python實(shí)現(xiàn)矩陣加法和乘法的方法分析

    這篇文章主要介紹了Python實(shí)現(xiàn)矩陣加法和乘法的方法,結(jié)合實(shí)例形式對(duì)比分析了Python針對(duì)矩陣的加法與乘法運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • 深度學(xué)習(xí)詳解之初試機(jī)器學(xué)習(xí)

    深度學(xué)習(xí)詳解之初試機(jī)器學(xué)習(xí)

    機(jī)器學(xué)習(xí)可應(yīng)用在各個(gè)方面,本篇將在系統(tǒng)性進(jìn)入機(jī)器學(xué)習(xí)方向前,初步認(rèn)識(shí)機(jī)器學(xué)習(xí),利用線性回歸預(yù)測(cè)波士頓房?jī)r(jià),讓我們一起來(lái)看看吧
    2021-04-04
  • python中的print()函數(shù)end=' '的使用及說(shuō)明

    python中的print()函數(shù)end=' '的使用及說(shuō)明

    這篇文章主要介紹了python中的print()函數(shù)end=' '的使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • flask入門之文件上傳與郵件發(fā)送示例

    flask入門之文件上傳與郵件發(fā)送示例

    本篇文章主要介紹了flask入門之文件上傳與郵件發(fā)送示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • python3 實(shí)現(xiàn)爬取TOP500的音樂(lè)信息并存儲(chǔ)到mongoDB數(shù)據(jù)庫(kù)中

    python3 實(shí)現(xiàn)爬取TOP500的音樂(lè)信息并存儲(chǔ)到mongoDB數(shù)據(jù)庫(kù)中

    今天小編就為大家分享一篇python3 實(shí)現(xiàn)爬取TOP500的音樂(lè)信息并存儲(chǔ)到mongoDB數(shù)據(jù)庫(kù)中,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • matplotlib.pyplot.matshow 矩陣可視化實(shí)例

    matplotlib.pyplot.matshow 矩陣可視化實(shí)例

    這篇文章主要介紹了matplotlib.pyplot.matshow 矩陣可視化實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Python辦公自動(dòng)化之教你用Python批量識(shí)別發(fā)票并錄入到Excel表格中

    Python辦公自動(dòng)化之教你用Python批量識(shí)別發(fā)票并錄入到Excel表格中

    今天來(lái)分享一篇辦公干貨文章,對(duì)于財(cái)務(wù)專業(yè)等學(xué)生或者公司財(cái)務(wù)人員來(lái)說(shuō),將報(bào)賬發(fā)票等匯總到excel簡(jiǎn)直就是一個(gè)折磨.尤其是到年底的時(shí)候,公司的財(cái)務(wù)人員面對(duì)一大堆的發(fā)票簡(jiǎn)直就是苦不堪言.正好我們學(xué)會(huì)了Python,我們應(yīng)該將Python的優(yōu)勢(shì)發(fā)揮起來(lái),需要的朋友可以參考下
    2021-06-06

最新評(píng)論

岐山县| 商南县| 临清市| 南城县| 蚌埠市| 土默特左旗| 聊城市| 公主岭市| 老河口市| 达孜县| 宁晋县| 固阳县| 盐池县| 晴隆县| 呼玛县| 屏南县| 应用必备| 芮城县| 札达县| 饶平县| 闸北区| 武威市| 会昌县| 宾川县| 望奎县| 浦北县| 板桥市| 乐业县| 拉萨市| 寿阳县| 苍南县| 佛学| 锦屏县| 翁牛特旗| 商河县| 确山县| 南皮县| 钟山县| 嘉禾县| 边坝县| 紫金县|