国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python的另外幾種語言實現

2019-11-25 18:01:08
字體:
來源:轉載
供稿:網友

Python自身作為一門編程語言,它有多種實現。這里的實現指的是符合Python語言規范的Python解釋程序以及標準庫等。這些實現雖然實現的是同一種語言,但是彼此之間,特別是與CPython之間還是有些差別的。

下面分別列出幾個主要的實現。

1.CPython:這是Python的官方版本,使用C語言實現,使用最為廣泛,新的語言特性一般也最先出現在這里。

CPython實現會將源文件(py文件)轉換成字節碼文件(pyc文件),然后運行在Python虛擬機上。

2.Jython:這是Python的Java實現,相比于CPython,它與Java語言之間的互操作性要遠遠高于CPython和C語言之間的互操作性。

在Python中可以直接使用Java代碼庫,這使得使用Python可以方便地為Java程序寫測試代碼,更進一步,可以在Python中使用Swing等圖形庫編寫GUI程序。

Jython會將Python代碼動態編譯成Java字節碼,然后在JVM上運行轉換后的程序,這意味著此時Python程序與Java程序沒有區別,只是源代碼不一樣。

在Python 中寫一個類,像使用Java 類一樣使用這個類是很容易的事情。

你甚至可以把Jython 腳本靜態地編譯為Java 字節碼。

示例代碼:

from java.lang import SystemSystem.out.write('Hello World!/n')

3.Python for .NET:它實質上是CPython實現的.NET托管版本,它與.NET庫和程序代碼有很好的互操作性。

4.IronPython:不同于Python for .NET,它是Python的C#實現,并且它將Python代碼編譯成C#中間代碼(與Jython類似),然后運行,它與.NET語言的互操作性也非常好。

5.PyPy:Python的Python實現版本,原理是這樣的,PyPy運行在CPython(或者其它實現)之上,用戶程序運行在PyPy之上。它的一個目標是成為Python語言自身的試驗場,因為可以很容易地修改PyPy解釋器的實現(因為它是使用Python寫的)。

6.Stackless:CPython的一個局限就是每個Python函數調用都會產生一個C函數調用。 這意味著同時產生的函數調用是有限制的,因此Python難以實現用戶級的線程庫和復雜遞歸應用。一旦超越這個限制,程序就會崩潰。Stackless的Python實現突破了這個限制,一個C棧幀可以擁有任意數量的Python棧幀。這樣你就能夠擁有幾乎無窮的函數調用,并能支持巨大數量的線程。Stackless唯一的問題就是它要對現有的CPython解釋器做重大修改。所以它幾乎是一個獨立的分支。另一個名為Greenlets的項目也支持微線程。它是一個標準的C擴展,因此不需要對標準Python解釋器做任何修改。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴林右旗| 奈曼旗| 巧家县| 塔城市| 耒阳市| 邵阳县| 阿合奇县| 荥阳市| 张掖市| 新郑市| 海宁市| 浦县| 施秉县| 永仁县| 齐齐哈尔市| 建德市| 巴南区| 千阳县| 工布江达县| 朔州市| 长沙市| 长春市| 鄂托克前旗| 通州市| 霸州市| 灵台县| 阜康市| 七台河市| 剑阁县| 临泽县| 石屏县| 四平市| 保定市| 大石桥市| 搜索| 五莲县| 陵水| 龙州县| 阿城市| 德清县| 会昌县|