成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

CPython, Pypy, MicroPython...還在傻傻分不清楚?

開發
許多小伙伴看到這些帶 “python” 的概念可能一頭霧水,心想這跟我平時接觸到的 python 有什么區別嗎?這些到底是什么?

哈嘍大家好,我是咸魚。

當我們說 Python 時,通常指的是官方實現的 CPython,但還有很多比如 Pypy、Jython、MicroPython、Brython、RustPython 等 “python”。許多小伙伴看到這些帶 “python” 的概念可能一頭霧水,心想這跟我平時接觸到的 python 有什么區別嗎?這些到底是什么?

那么今天這篇文章將跟大家介紹相關的概念。

為什么會有這么多的 'python'

在開始這篇文章之前,我們首先需要了解一個東西——python 是什么?

python 實際上是一個語言規范,這個規范定義了 Python 這門語言應該具備哪些語言要素,應當能完成什么樣的任務。

Python 語言規范可以用不同的方式實現,可以用 C 實現,也可以用 C++、Java、C#、JavaScript,甚至使用 Python 自己實現。

python 最初是由龜哥(Guido van Rossum)用 C 編寫的(CPython)。

在 python 大獲成功之后,許多其他的項目開始用其他的編程語言或者不同的目標去重新編寫 python,那么這些項目中的每一個 python 實現都需要一個名字去區別于最初的那個 python。

所以這就是 Pypy、MicroPython、Iron Python、Jython 和 Pyston 等豐富多彩的名字出現的原因。

各種 'python' 介紹

CPython

當我們在討論 python 的時候,99% 的情況下指的是 CPython,CPython 指的是用 C 編寫的 pyhton 實現。

CPython 是標準 python,可以將 Python 源碼編譯成 CPython 字節碼,由虛擬機解釋執行這些字節碼。

一般情況下,CPython 是最常用的 python 實現,大多數開發人員基本不會使用到 CPython 之外的 python 實現,甚至都不會去討論。

Pypy

Pypy 是最著名的 CPython 替代品,它是用 python 編寫的(你沒聽錯,用 python 編寫的 python 實現),實際上 Pypy 是由 RPython 實現的,RPython 是 Python 的一個子集。

Pypy 使用即時編譯(JIT)技術,可以在運行時將 Python 代碼動態地編譯成機器碼,從而提供更高的執行速度。

雖然 Pypy 執行速度要比 CPython 快,但是它的啟動速度要比 CPython 慢,如果運行的時間足夠長的話,就會變得越來越快,這使得它對于長時間運行的進程特別有用,例如守護進程、任務隊列和web服務器。

還有一個缺點就是 Pypy 與許多使用 C 編寫的 Python 拓展庫不兼容。

雖然 Pypy 提供了一些與 CPython C API 兼容的接口,但并不能保證所有的 C 拓展都能無縫運行。

Stackless Python

Stackless Python 是一種 Python 的變體,它是在 CPython 的基礎上進行擴展和改進的版本。

與傳統的 CPython 相比,Stackless Python 提供了一些額外的特性,其中最重要的是支持協程(coroutine)和微線程(microthreads)。

協程是一種輕量級的線程,它允許在同一個線程內的多個協程之間進行切換,從而實現并發執行

Stackless Python 的協程實現基于任務切換的概念,可以方便地編寫異步、非阻塞的代碼,提高程序的并發性和響應性。

微線程是 Stackless Python 中的另一個概念,它是一種更輕量級的線程單位,可以在一個進程內并發地執行多個微線程,微線程與操作系統線程的切換開銷較小,可以更高效地處理大量的并發任務。

Stackless Python 并不是 Python 的官方版本,它是由 Christian Tismer 和其他貢獻者開發和維護的一個項目。

Stackless Python 的一個簡單應用:

Jython

Jython(Java Python 的縮寫)由 Java 編寫,運行在 Java 虛擬機上( Java Virtual Machine,JVM),它允許開發人員使用 Python 語言編寫和執行 Java 應用程序,可以在Jython中直接訪問Java類和方法,它提供了對 Java 類和庫的無縫集成,使得開發人員可以利用 Java 平臺的功能和生態系統。

Jython 廣泛應用于 Java 開發中,尤其是需要結合 Python 腳本和 Java 代碼的場景。

Jython 的一個簡單應用:

IronPython

IronPython 與 Jython 類似,它是 .NET 框架的 python 實現,它使用了微軟開發的動態語言運行時(DLR)和公共語言運行時(CLR),能夠與.NET框架無縫集成,開發人員可以在 .NET 平臺上編寫和執行 Python 代碼,利用 .NET 框架的功能和資源。

IronPython 的一個簡單應用:

MicroPython

根據字面意思可以得知—— MicroPython 是一種精簡版的 python 實現,它只包含了 python 標準庫中的一小部分并經過優化,以適應資源受限的環境,專為嵌入式系統和物聯網設備而設計。

MicroPython具有以下特點:

  • 小巧
  • 支持硬件交互
  • 垃圾回收和內存管理
  • 交互式開發
  • 跨平臺支持

總結一下

  • Python 實際上是一個語言規范,可以用不同的方式實現
  • 為了能夠實現在特定的應用場景中具有不同的優勢和用途,開發人員用其他語言設計了不同的 python 實現
  • CPython 是最常用的 Python 實現,它是官方用 C 編寫的 python 實現
  • 除此之外還有像 jython、Pypy、Iron Python、Stackless Python 等
責任編輯:趙寧寧 來源: 咸魚運維雜談
相關推薦

2021-03-10 08:56:37

Zookeeper

2024-02-29 09:08:56

Encoding算法加密

2022-05-15 21:52:04

typeTypeScriptinterface

2021-07-27 07:31:16

JavaArrayList數組

2018-12-17 12:30:05

Kubernetes存儲存儲卷

2020-10-30 08:20:04

SD卡TF卡存儲

2023-02-27 15:46:19

數據元元數據

2018-05-22 16:24:20

HashMapJavaJDK

2020-03-03 17:35:09

Full GCMinor

2016-11-04 12:51:46

Unix網絡IO 模型

2022-02-25 09:14:33

類變量共享實例變量

2021-11-09 06:01:35

前端JITAOT

2024-11-04 00:00:03

viewportDOMSPA

2021-02-08 23:47:51

文件存儲塊存儲對象存儲

2025-05-12 08:40:00

前端監控DOM

2020-11-11 07:32:18

MySQL InnoDB 存儲

2023-04-11 15:57:49

JavaScriptCSSHTML

2021-01-13 08:10:26

接口IEnumeratorIEnumerable

2019-11-21 14:22:12

WiFiWLAN區別

2021-02-14 22:33:23

Java字符字段
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲高清视频在线观看 | 99久久精品免费看国产小宝寻花 | 亚洲精品1区 | 99精品国产一区二区青青牛奶 | 成人在线观看欧美 | 国产一区视频在线 | 国产日韩一区二区 | 久久精品国产久精国产 | 国产片淫级awww| 日韩一区二区三区精品 | 日韩午夜| 国产精品久久久久久久久免费软件 | 波多野结衣先锋影音 | 国产精品国产 | 天天爽夜夜爽精品视频婷婷 | 欧美日韩一区二区在线 | 在线免费观看a级片 | 欧美一页 | 一区二区三区四区日韩 | 国产99久久精品一区二区永久免费 | 91精品国产色综合久久 | 亚洲精品一区二三区不卡 | 国产成人精品一区二区三区四区 | 国产情侣激情 | 亚洲欧美综合精品久久成人 | 欧美日韩视频网站 | 久久日韩粉嫩一区二区三区 | 免费在线观看av的网站 | 99婷婷 | 黄色精品| 一区二区三区韩国 | 国产成人小视频 | 日韩黄 | 特级生活片 | 午夜精品久久久久久久久久久久久 | 亚洲精品一区二区三区中文字幕 | 午夜视频精品 | 狠狠色综合欧美激情 | 一级高清视频 | 人人人人人爽 | 91电影|