我是Python的新手,我一直使用标准的cpython(v2.5)实现。
我一直在想其他实现,尤其是Jython和IronPython。是什么让他们更好?是什么让他们变得更糟还有哪些其他实现?
我想我正在寻找的是每个实现的摘要和优缺点列表。
答案 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)
答案 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可以静态编译。