python替代_2.3.1 Python 实现的替代者
2.3 執行模塊的變種
在繼續學習之前,應該指出前一節所介紹的內部執行流程反映了如今Python 的標準實現形式,并且這實際上并不是Python 語言本身所必需的。正是因為這一點,執行模塊也在隨時間而演變。事實上,從某種意義上講有些系統已經改進了圖2-2 所描述的情況。讓我們花些時間探索一下這些變化中最顯著的改進吧。
2.3.1 Python 實現的替代者
事實上,在編寫本書的過程中,Python 語言有三種主要實現方式(CPython 、Jython 和IronPython )以及一些次要的實現方式,例如,Stackless Python 。簡要地說,CPython 是標準的實現;其他的都是有特定的目標和角色的。所有的這些都用來實現Python 語言,只是通過不同的形式執行程序而已。
CPython
和Python 的其他兩種實現方式相比,原始的、標準的Python 實現方式通常稱作CPython 。這個名字根據它是由可移植的ANSI C 語言代碼編寫而成的這個事實而來的。這就是你從http://www.python.org 獲取的、從ActivePython 分發包中得到的以及從絕大多數Linux 和Mac OS X 機器上自動安裝的Python 。如果你在機器上發現有個預安裝版本的Python, 那么很有可能就是CPython ,除非公司將Python 用在相當特別的場合。
除非希望使用Python 腳本化Java 或.NET ,你或許想要使用的就是標準的CPython 系統。因為CPython 是這門語言的參照實現方式,所以和其他的替代系統相比來說,它運行速度最快、最完整而且也最健全。圖2-2 反映了CPython 的運行體系結構。
Jython
Jython 系統(最初稱為JPython )是一種Python 語言的替代實現方式,其目的是為了與Java 編程語言集成。Jython 包含了Java 類,這些類編譯Python 源代碼、形成Java 字節碼,并將得到的字節碼映射到Java 虛擬機(JVM )上。程序員仍然可以像平常一樣,在文本文件中編寫Python 語句;Jython 系統的本質是將圖2-2 中的最右邊兩個方框中的內容替換為基于Java 的等效實現。
Jython 的目標是讓Python 代碼能夠腳本化Java 應用程序,就好像CPython 允許Python 腳本化C和C++ 組件一樣。它實現了與Java 的無縫集成。因為Python 代碼被翻譯成Java 字節碼,在運行時看起來就像一個真正的Java 程序一樣。Jython 腳本可以應用于開發Web applet 和servlet ,建立基于Java 的GUI 。此外,Jython 具有集成支持的功能,允許導入Python 代碼或使用Java 的類(這些類就像是用Python 編寫的一樣)。因為Jython 要比CPython 慢而且也不夠健壯,它往往被看作是一個主要面向尋找Java 代碼前端腳本語言的Java 開發者的一個有趣的工具。
IronPython
Python 的第三種(截止到目前寫本書時,從某種程度上來講,Python 的第三種實現方式仍然是新的)實現方式IronPython ,設計它的目的是讓Python 程序可以與Windows 平臺上的.NET 框架以及與之對應的Linux 的上開源的Mono 編寫成的應用相集成。本著像微軟早期的COM 模型一樣的精神,將.NET 和C# 程序語言的運行系統設計成與語言無關性的對象通信層。IronPython 允許Python 程序既可以用作客戶端也可以用作服務器端的組件,還可以與其他.NET 的語言進行通信。
在實現上,IronPython 很像Jython (實際上兩者都是由同一個創始人開發的):它替換了圖2-2 中***的兩個方框,將其換成.NET 環境的等效執行方式。并且,就像Jython 一樣,IronPython 有特定的目標:它主要為了滿足在.NET 組件中集成Python 的開發者。因為它是由微軟公司開發的,IronPython 也許能夠為了性能實現完成一些重要的優化工具。IronPython 涉及到的應用范圍就像本書所寫的那樣;如果想了解更多細節,請參考Python 的線上資源,或者在網絡上搜索相關內容(注2)。
【責任編輯:董書 TEL:(010)68476606】
點贊 0
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的python替代_2.3.1 Python 实现的替代者的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu5468 Puzzled Elen
- 下一篇: for循环,定时器,闭包混合一块的那点事