各种Python实现的优缺点是什么?

时间:2008-09-17 18:25:28

标签: python

我是Python的新手,我一直使用标准的cpython(v2.5)实现。

我一直在想其他实现,尤其是Jython和IronPython。是什么让他们更好?是什么让他们变得更糟还有哪些其他实现?

我想我正在寻找的是每个实现的摘要和优缺点列表。

6 个答案:

答案 0 :(得分:15)

Jython IronPython 非常有用,如果您需要与在不同平台上编写的现有库进行交互,例如,如果您有100,000行Java并且只是想写一个20行的Python脚本。在我看来,对于其他任何事情都不是特别有用,因为由于社区惯性,它们永远是CPython背后的几个版本。

Stackless 非常有趣,因为它支持绿色线程,延续等等。对Erlang-lite进行排序。

PyPy 是一个实验性的解释器/编译器,可能有一天会取代CPython,但现在更像是新想法的测试平台。

答案 1 :(得分:6)

Jython的另一个好处是it lacks the GIL(全局解释器锁),至少对于某些人而言,它使用Java的本机线程。这意味着您可以并行运行纯Python代码,这是GIL无法实现的。

答案 2 :(得分:3)

此处列出了所有实现:

https://wiki.python.org/moin/PythonImplementations

CPython是由Guido和核心开发人员开发的“参考实现”。

答案 3 :(得分:1)

优点:访问可用于JVM或CLR的库。

缺点:在功能方面,两者都自然落后于CPython。

答案 4 :(得分:1)

IronPython和Jython使用.NET或Java的运行时环境,随之而来的是Just In Time编译和与原始CPython不同的垃圾收集器。由于JIT,它们也可能比CPython更快,但我肯定不知道。

使用Jython或IronPython的一个缺点是你不能使用本机C模块,它们只能在CPython中使用。

答案 5 :(得分:1)

PyPy是一个用RPython编写的Python实现,它是一个Python子集。

RPython可以翻译为在VM上运行,或者与标准Python不同,RPython可以静态编译。