<strong id="6sqeg"><object id="6sqeg"></object></strong>
<tt id="6sqeg"><s id="6sqeg"></s></tt>
  • <code id="6sqeg"></code>
  • 歡迎訪問牛耳教育官網 專注實戰IT培訓技術20年!
    400-0731-162
    當前位置:IT培訓機構 > Python培訓 > 各種Python實現的簡單介紹與比較

    各種Python實現的簡單介紹與比較

    時間: 2019-01-18 | 作者: python小明 | 分類:Python培訓 | 關鍵字:Python實現 | 閱讀量:

    導讀:當談到Python時,一般指的是CPython。但Python實際上是一門語言規范,只是定義了Python這門語言應該具備哪些語言要素,應當能完成什么樣的任務。這種語言規范可以用不同的方式實現,可以用C實...

      當談到Python時,一般指的是CPython。但Python實際上是一門語言規范,只是定義了Python這門語言應該具備哪些語言要素,應當能完成什么樣的任務。這種語言規范可以用不同的方式實現,可以用C實現,也可以用C++、Java、C#、JavaScript,甚至使用Python自己實現。這篇文章就是簡要介紹并比較不同的Python實現,并且今后還會不斷的擴充。

      CPython

      CPython是標準Python,也是其他Python編譯器的參考實現。通常提到“Python”一詞,都是指CPython。CPython由C編寫,將Python源碼編譯成CPython字節碼,由虛擬機解釋執行。沒有用到JIT等技術,垃圾回收方面采用的是引用計數。
      
      所以當有人問道Python是解釋執行還是編譯執行,可以這樣回答:Python(CPython)將Python源碼編譯成CPython字節碼,再由虛擬機解釋執行這些字節碼。
      
      如果需要廣泛用到C編寫的第三方擴展,或讓大多數用戶都能直接使用你的Python代碼,那么還是使用CPython吧。
    各種Python實現的簡單介紹與比較

      Jython

      Jython在JVM上實現的Python,由Java編寫。Jython將Python源碼編譯成JVM字節碼,由JVM執行對應的字節碼。因此能很好的與JVM集成,比如利用JVM的垃圾回收和JIT,直接導入并調用JVM上其他語言編寫的庫和函數。
      
      對于想在JVM上使用Python簡化工作流程,或者出于某些原因需要在Python語言中使用Java的相關代碼,同時無需用到太多CPython擴展的用戶來說,極力推薦Jython。

      IronPython

      IronPython與Jython類似,所不同的是IronPython在CLR上實現了Python,即面向.NET平臺,由C#編寫。IronPython將源碼編譯成TODO CLR,同樣能很好的與.NET平臺集成。即與Jython相同,可以利用.NET框架的JIT、垃圾回收等功能,能導入并調用.NET上其他語言編寫的庫和函數。IronPython默認使用Unicode字符串。
      
      另外,Python Tools for Visual Studio可以將CPython和IronPython無縫集成進VS中。如果僅需要在Windows上開發較大的Python項目。條件允許的情況下,IronPython是個不錯的選擇。

      PyPy

      這里說的PyPy是指使用RPython實現,利用Tracing JIT技術實現的Python,而不是RPython工具鏈。PyPy可以選擇多種垃圾回收方式,如標記清除、標記壓縮、分代等。
      
      想對于CPython,PyPy的性能提升非常明顯,但對第三方模塊的支持真心是弱爆了。比如無法很好的支持使用CPython的C API編寫的擴展,完全不支持使用SWIG、SIP等工具編寫的擴展。就連NumPy,也要在編譯器的層面上從頭實現。即使實現了,也只能在Python層面中使用,無法供其他第三方模塊在非Python環境中使用。關于PyPy,后續會嘗試用一篇完整的文章來介紹。不過我的這一篇文章中對PyPy和下面的Pyston有更詳細的描述。

      Pyston

      Pyston由Dropbox開發,使用C++11編寫,采用Method-at-a-time-JIT和Mark Sweep——Stop the World的GC技術。Pyston使用類似JavaScript V8那樣的多層編譯,其中也用到了LLVM來優化代碼。Pyston正在發展中,還不成熟。但其前景是非常值得看好的(如果沒像Google的Unladen Swallow那樣死掉的話。話說,Google的東西現在是越來越不敢用了,不是他們的東西不好,是怕用著用著,他們就關掉了)。
      
      總結
      
      這里介紹了主要(其實是我接觸過的,^_^)的幾款Python實現,這幾款Python實現可以滿足大部分需要。而略過了幾款,如Cython、Brython、RubyPython等。其實Cython還是挺有用的,不過現在接觸的不多,不敢多寫,看后面能不能抽時間補上。而Brython、RubyPython,個人感覺完全可以用JS或Ruby,沒必要在一種動態語言的環境中再使用另一種動態語言。
    推薦閱讀:
    免責聲明:本文內容來源于公開網絡,若涉及侵權聯系盡快刪除!,【本文標題和網址】各種Python實現的簡單介紹與比較:http://www.eaglelawnandsnow.com/Pythondt/32.html
    申請免費試學
    快捷咨詢
    資深IT講師一對一為您解答IT問題
    電話
    咨詢服務電話
    400-0731-162
    微信
    IT培訓_長沙java培訓機構_專注于實戰IT培訓技術20年-牛耳教育官網
    關注了解更多IT知識
    QQ
    熱門課程
    java軟件開發課程 Java是一種可以撰寫跨平臺應用程不齊人60%Java工程師缺口序的面向對象的程序設計語言。Java技術具有卓越的通用性、高效性、...
    嵌入式應用開發課程 嵌入式開發就是指在嵌入式操作系統下進行開發,包括在系統化設計指導下的硬件和軟件以及綜合研發。除暫且分離硬件的...
    軟件測試課程 軟件測試具有人才缺口大、發展方向廣、專業無限制、適合零基礎、技術上手快、職業生涯穩等優勢。 人才缺口大 國內測試...
    Web前端開發課程 web前端開發是創建Web頁面或app等前端界面呈現給用戶的過程,通過HTML,CSS及JavaScript以及衍生出來的各種技術、框架、解決方...
    java+大數據課程 什么是Java大數據? Java,是一門面向對象編程語言,具有功能強大和簡單易用的特征。作為**受歡迎的計算機語言,發展至今...
    python人工智能課程 Python是一門神奇的編程語言,它具有簡單易學、就業面廣、就業薪資高、競爭壓力小、開發效率高、行業風口等6個優勢,下...
    熱門資訊
    本文:(零基礎學java)零基礎也能學Java,5大Java學習方法!,最近有很多同學來問小編,關于學習java的方法,下面小編根據...
    大家的生活已經離不開嵌入式就連常用的共享單車都離不開嵌入式。所以越來越多的人看中了嵌入式的就業前景,轉行來做嵌...
    Web前端培訓機構的好壞直接決定了你學習后的就業薪資,市面上web前端培訓機構那么多,應該如何選擇靠譜的web前端培訓機構...
    當談到Python時,一般指的是CPython。但Python實際上是一門語言規范,只是定義了Python這門語言應該具備哪些語言要素,應當能...
    目前,Python非常流行并且被廣泛使用。它是目前最熱門的行業之一,競爭激烈,工資高,未來發展出色。但是對于學習Pytho...
    打算參加嵌入式培訓的同學對于嵌入式培訓課程的內容都特別的關心,只有在了解了課程內容之后才能更好的知道這個嵌入式...
    2020年學習嵌入式晚不晚?1、學技術不像學藝術,只要堅持,任何時候學都不晚。很多人對于學習嵌入式應用開發都會有所顧...
    本文(零基礎學python)0基礎學習Python容易犯哪些錯誤呢?主要介紹1. 忘記寫冒號 在if、elif、else、for、while、class、def 語句后...
    本文:IT培訓就業感言(牛耳教育IT培訓就業感言),介紹:轉眼間幾個月在牛耳教育的IT培訓就結束了,從學習到就業也算是...
    it培訓學校有用嗎?其實判斷IT培訓學校有沒有用,看培訓的課程是否能滿足自己的需求就可以了,如果培訓的課程自己都了...