您好,登錄后才能下訂單哦!
python中的解釋器是什么?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
什么是python解釋器?
解釋器是一個(gè)源代碼解釋器。也就是說(shuō),解釋器在執(zhí)行時(shí),每次讀入一條語(yǔ)句,并且根據(jù)這條語(yǔ)句執(zhí)行特定的操作;然后再讀入下一條語(yǔ)句,依次類推。這與偽代碼解釋器是有所區(qū)別的,例如早期的Java運(yùn)行時(shí)系統(tǒng)。兩者的區(qū)別在于:源代碼解釋器直接對(duì)程序的源代碼解釋執(zhí)行;而偽代碼解釋器先將程序的源代碼轉(zhuǎn)化為某種與機(jī)器無(wú)關(guān)的中間代碼,然后再執(zhí)行中間代碼。相比之下,源代碼解釋器更易于創(chuàng)建,并且不需要一個(gè)獨(dú)立的編譯過(guò)程。
當(dāng)我們編寫(xiě)Python代碼時(shí),我們得到的是一個(gè)包含Python代碼的以.py為擴(kuò)展名的文本文件。要運(yùn)行代碼,就需要Python解釋器去執(zhí)行.py文件。
由于整個(gè)Python語(yǔ)言從規(guī)范到解釋器都是開(kāi)源的,所以理論上,只要水平夠高,任何人都可以編寫(xiě)Python解釋器來(lái)執(zhí)行Python代碼(當(dāng)然難度很大)。事實(shí)上,確實(shí)存在多種Python解釋器。
CPython
當(dāng)我們從Python官方網(wǎng)站下載并安裝好Python 2.7后,我們就直接獲得了一個(gè)官方版本的解釋器:CPython。這個(gè)解釋器是用C語(yǔ)言開(kāi)發(fā)的,所以叫CPython。在命令行下運(yùn)行python就是啟動(dòng)CPython解釋器。
CPython是使用最廣的Python解釋器。教程的所有代碼也都在CPython下執(zhí)行。
IPython
IPython是基于CPython之上的一個(gè)交互式解釋器,也就是說(shuō),IPython只是在交互方式上有所增強(qiáng),但是執(zhí)行Python代碼的功能和CPython是完全一樣的。好比很多國(guó)產(chǎn)瀏覽器雖然外觀不同,但內(nèi)核其實(shí)都是調(diào)用了IE。
CPython用>>>作為提示符,而IPython用In [序號(hào)]:作為提示符。
PyPy
PyPy是另一個(gè)Python解釋器,它的目標(biāo)是執(zhí)行速度。PyPy采用JIT技術(shù),對(duì)Python代碼進(jìn)行動(dòng)態(tài)編譯(注意不是解釋),所以可以顯著提高Python代碼的執(zhí)行速度。
絕大部分Python代碼都可以在PyPy下運(yùn)行,但是PyPy和CPython有一些是不同的,這就導(dǎo)致相同的Python代碼在兩種解釋器下執(zhí)行可能會(huì)有不同的結(jié)果。如果你的代碼要放到PyPy下執(zhí)行,就需要了解PyPy和CPython的不同點(diǎn)。
Jython
Jython是運(yùn)行在Java平臺(tái)上的Python解釋器,可以直接把Python代碼編譯成Java字節(jié)碼執(zhí)行。
IronPython
IronPython和Jython類似,只不過(guò)IronPython是運(yùn)行在微軟.Net平臺(tái)上的Python解釋器,可以直接把Python代碼編譯成.Net的字節(jié)碼。
小結(jié)
Python的解釋器很多,但使用最廣泛的還是CPython。如果要和Java或.Net平臺(tái)交互,最好的辦法不是用Jython或IronPython,而是通過(guò)網(wǎng)絡(luò)調(diào)用來(lái)交互,確保各程序之間的獨(dú)立性。
本教程的所有代碼只確保在CPython 2.7版本下運(yùn)行。請(qǐng)務(wù)必在本地安裝CPython(也就是從Python官方網(wǎng)站下載的安裝程序)。
此外,教程還內(nèi)嵌一個(gè)IPython的Web版本,用來(lái)在瀏覽器內(nèi)練習(xí)執(zhí)行一些Python代碼。要注意兩者功能一樣,輸入的代碼一樣,但是提示符有所不同。另外,不是所有代碼都能在Web版本的IPython中執(zhí)行,出于安全原因,很多操作(比如文件操作)是受限的,所以有些代碼必須在本地環(huán)境執(zhí)行代碼。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。