不同的Python实现方式的区别

不同的Python实现方式的区别,第1张

概述转自:http://www.weidianyuedu.com/content/1411714076207.html不同的Python实现方式之间是有区别的。Python从2017年开始受到关注和追捧,它与高科技人工智能有关,但python是什么?python能做什么?似乎是最热门的话题。这里我先解释一下:python是什么:其实python是一种面向对象

转自:http://www.weidianyuedu.com/content/1411714076207.html

不同的Python实现方式之间是有区别的。Python从2017年开始受到关注和追捧,它与高科技人工智能有关,但python是什么?python能做什么?似乎是最热门的话题。这里我先解释一下:

python是什么:其实python是一种面向对象的解释性计算机编程语言,拥有丰富而强大的库。该语言因其简单性、可读性和可扩展性而广受欢迎。

python能做什么:python可以用于图形处理、数学处理、文本处理、数据库编程、网络编程、Web编程、多媒体应用、pymo引擎、黑客编程、用Python写简单爬虫、人工智能等等。

所以我们说Python的时候,一般指的是CPPython。但Python其实是一种语言规范,它只定义了Python应该具备什么语言元素,应该完成什么任务。这个语言规范可以用不同的方式实现,比如C,C++,Java,C#,JavaScript,甚至Python本身。本文是对不同Python实现的简单介绍和比较,以后还会继续扩展。

cpython.

cpython是标准Python,是其他Python编译器的参考实现。一般来说,“Python”这个词指的是cpython。cpython是用c写的,c把Python源代码编译成cpython字节码,由虚拟机解释执行。不使用JIT等技术,垃圾收集使用引用计数。

所以,当有人问Python解释执行还是编译执行,答案可以是这样的:Python(cpython)将Python源代码编译成CPPython字节码,然后虚拟机解释执行这些字节码。

如果你需要大量使用C写的第三方扩展,或者让大部分用户直接使用你的Python代码,那就改用CPPython。

Jython.

Python由Jython在JVM上实现,Java编写。Jython将Python源代码编译成JVM字节码,JVM执行相应的字节码。所以可以很好的和JVM集成,比如利用JVM的垃圾收集和JIT直接在JVM上导入和调用其他语言编写的库和函数。

对于希望使用Python简化JVM上的工作流程,或者由于某些原因需要使用Python语言的Java相关代码的用户,强烈推荐使用Jython,不要使用太多的CPPython扩展。

IronPython.

IronPython和Jython类似,不同的是IronPython在CLR中实现Python,面向。NET平台,用C#编写。IronPython将源代码编译成TodoCLR,也可以很好地与。.NET平台。也就是说,像Jython一样,它可以使用JIT、垃圾收集和。NET框架来导入和调用用其他语言编写的库和函数。.NET。IronPython默认使用Unicode字符串。

此外,PythonToolsforVisualStudio可以将cpython和IronPython无缝集成到vs中。如果只需要在windows上开发大型Python项目。在条件允许的情况下,IronPython是一个不错的选择。

PyPy.

这里的PyPy指的是RPython和TracingJIT技术实现的Python,而不是RPython工具链。PyPy可以选择多种垃圾收集方式,比如标签移除、标签压缩、生成等等。

对于cpython来说,PyPy的性能明显提高了,但是对第三方模块的支持真的很弱。比如cpythonCAPI写的扩展不能很好的支持,SWIG,SIP等工具写的扩展根本不能支持。甚至NumPy都要在编译器级别从头实现。即使实现了,也只能在Python级别使用,不能在非Python环境下被其他第三方模块使用。

皮斯顿.

Pyston是DropBox开发的,用C++11编写,采用了一次一法-JIT和MarkSweep-StoptheWorld的GC技术。Pyston使用像JavaScriptV8那样的多层编译,其中LLVM也是用来优化代码的。Pyston在发展,不成熟。但是它的前景很有希望。

总结一下。

在了解python是什么,python能做什么的基础上,相信大家已经了解了这些主要的python实现,以及它们之间的区别。他们之间也有一些区别和区别,比如Cython,Brython,RubyPython。

总结

以上是内存溢出为你收集整理的不同的Python实现方式的区别全部内容,希望文章能够帮你解决不同的Python实现方式的区别所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1186697.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存