資料內(nèi)容:
Python解釋器
當(dāng)我們編寫Python代碼時,我們得到的是一個包含Python代碼的以 .py 為擴(kuò)展名的文本文件。要運(yùn)行代碼,就需要Python解釋器去執(zhí)行 .py 文件。
由于整個Python語言從規(guī)范到解釋器都是開源的,所以理論上,只要水平夠高,任何人都可以編寫Python解釋器來執(zhí)行Python代碼(當(dāng)然難度很大)。事實(shí)上,確實(shí)存在多種Pyt
hon解釋器。
CPython
當(dāng)我們從Python官方網(wǎng)站下載并安裝好Python 3.5后,我們就直接獲得了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發(fā)的,所以叫CPython。在命令行下運(yùn)行 pyt
hon 就是啟動CPython解釋器。
CPython是使用最廣的Python解釋器。教程的所有代碼也都在CPython下執(zhí)行。
IPython
IPython是基于CPython之上的一個交互式解釋器,也就是說,IPython只是在交互方式上有所增強(qiáng),但是執(zhí)行Python代碼的功能和CPython是完全一樣的。好比很多國產(chǎn)瀏覽器雖
然外觀不同,但內(nèi)核其實(shí)都是調(diào)用了IE。
CPython用 >>> 作為提示符,而IPython用 In [序號]: 作為提示符。
PyPy
PyPy是另一個Python解釋器,它的目標(biāo)是執(zhí)行速度。PyPy采用JIT技術(shù),對Python代碼進(jìn)行動態(tài)編譯(注意不是解釋),所以可以顯著提高Python代碼的執(zhí)行速度。
絕大部分Python代碼都可以在PyPy下運(yùn)行,但是PyPy和CPython有一些是不同的,這就導(dǎo)致相同的Python代碼在兩種解釋器下執(zhí)行可能會有不同的結(jié)果。如果你的代碼要放到P
yPy下執(zhí)行,就需要了解PyPy和CPython的不同點(diǎn)。
Jython
Jython是運(yùn)行在Java平臺上的Python解釋器,可以直接把Python代碼編譯成Java字節(jié)碼執(zhí)行。
IronPython
IronPython和Jython類似,只不過IronPython是運(yùn)行在微軟.Net平臺上的Python解釋器,可以直接把Python代碼編譯成.Net的字節(jié)碼。
小結(jié)
Python的解釋器很多,但使用最廣泛的還是CPython。如果要和Java或.Net平臺交互,最好的辦法不是用Jython或IronPython,而是通過網(wǎng)絡(luò)調(diào)用來交互,確保各程序之間的獨(dú)立
性。
本教程的所有代碼只確保在CPython 3.5版本下運(yùn)行。請務(wù)必在本地安裝CPython(也就是從Python官方網(wǎng)站下載的安裝程序)