新聞中心
在計算機語言中Python源代碼一般的情況下是不進行編譯的,只是通過幾個文件就能運用的,以下的文章主要是通過Python源代碼的相關代碼來具體描述Python源代碼的編譯是如何進行的。

我們一般使用這樣的命令運行一個python程序:
- C:\> python im.py
其中,im.py文件的內容是:
- #!/usr/bin/env python
- import mymodule
- mymodule.say(”hello”)
執(zhí)行這一命令后,Python解釋器其實并不一定會讀入mymodule.py文件,它會嘗試讀取mymodule.pyc文件或者mymodule.pyo文件。如果都失敗了,或者mymodule.py文件比mymodule.pyc/mymodule.pyo新,才轉而讀入mymodule.py文件。
Python只懂得解釋執(zhí)行字節(jié)碼,所以mymodule.py文件讀入后***件事就是先進行編譯。編譯的結果會被嘗試保存到mymodule.pyc文件中。等一下會討論如何控制Python的編譯過程。
雖然與C++/Java這樣的靜態(tài)語言一樣,采用了編譯(compile)這個術語,實際情況還是有所不同的。首先,最明顯的一點,Python源代碼編譯的最終結果不是機器碼,而是字節(jié)碼。Python的編譯實際上主要是進行文法分析,生成一個抽象語法樹,然后轉儲成字節(jié)碼形式了事。#t#
從上面的介紹可以發(fā)現(xiàn)Python的編譯與C++相去甚遠。不過倒與Java有些相像,因為它們都生成字節(jié)碼。憑良心說,Java的編譯過程比Python先進很多。Java的解釋器在執(zhí)行Java字節(jié)碼的時候,會使用JIT,將循環(huán)操作等熱點轉化成為機器碼。所以有時候Java的性能能夠達到接近C++的級別。
Python缺少JIT并非故意所為,而是缺少人力資源?,F(xiàn)在已經(jīng)有一個pysco的外部模塊,據(jù)說能大大提高Python代碼的速度,不過這個模塊還沒有進入Python的官方代碼。
以上的文章就是對Python源代碼的編譯的實際操作步驟的部分介紹。
網(wǎng)站題目:Python源代碼的編譯的具體方案應用描述
轉載注明:http://m.5511xx.com/article/ccdpcjs.html


咨詢
建站咨詢
