python入門-python解譯器執行,python-python
最近由於公司需要,接觸了python這門神奇的語言,給我的感覺就是開發快速和代碼簡潔。
開始還是先羅列一下解釋性語言和編譯性語言的差別吧0.0!
編譯性語言:是在程式運行前,需要專門的一個編譯過程,如產生exe,hex檔案等特定的機器語言檔案。(必須在特定系統上)。 所以以後就可以直接運行,不用在進行編譯了。但該檔案不能誇作業系統系統平台,因為該檔案在不同作業系統中是不識別的。
解釋性語言:不需要解釋,是在程式執行的時候,運行一行翻譯一行。所以每次執行都要進行解釋。
兩者的本質區別
1啟動並執行時間不同:
編譯性語言是在程式運行前進行編譯
解釋性語言在程式運行時進行解釋
2可移植性:
編譯性語言只能在特定機器上運行,不可移植
解釋性語言可實現跨平台操作
我們知道一些編譯性語言比如C、C++,他們需要先從源檔案編譯轉換成電腦的語言,經過連接器形成可執行檔二進位檔案,執行時將這些二進位檔案載入到記憶體中運行。
一般解釋性語言運行方式則和編譯型語言有很大的差別。解釋性語言直接從原始碼運行程式,而且是一句一句的執行,那麼他們是怎麼讓機器認識的呢?這裡就要用到每門解譯器語言對應的解譯器啦。比如python解譯器直接將原始碼轉換成位元組碼,然後再由解譯器來執行這些位元組碼,轉換成機器語言,最後就可以在機器上運行了。這些機制導致python有以下特性。
由於每次執行時都要轉化為位元組碼,然後在由虛擬機器轉化為機器語言,所以程式效能肯定會收到影響;由於程式員不要關心程式的編譯和庫的連結問題開發工作也更輕鬆;由於有python解譯器和機器底層進行互動,從而讓python代碼和機器底層更加遠了,所以python實現了跨平台。
python針對效能問題提供了一種編譯方法,編譯之後可以得到pyc檔案,儲存了位元組碼,然後有一個專門的python解譯器負責解釋和執行位元組碼,這就省去瞭解釋器將原始碼轉化成位元組碼的過程,也節省了載入模組的時間從而提高了執行效率,另外編譯成pyc檔案一定程度上也提高了代碼的安全性。