Python日课-2.5-python语言的不同实现
曾老师的 Python 课(链接可点击) 第一课的所有内容已经全部发布,包括课程 PPT、课程视频都可以免费获取,可以使用微信扫描下面的二维码进群获取。
这套课程有两条教学线:
现场教学,约两周一次,每次一小时,主要为实际案例的讲解。
微信群教学,每日一次,由易到难讲解 Python 知识点,Python 相关的小故事,业界八卦,IT 行业最新信息。
Python 日课 2021-01-14:Python语言的不同实现。
各位同学,今天来说说Python语言的种类吧。
CPython
https://python.org
我们平时说的Python,更多的是指(Python的C语言实现)。它的全称是CPython。
Python是一门解释型语言,它的底层是用C语言来实现的,这也是最常用一种Python实现。如果不加解释的话,CPython就是Python的代表了。
既然用C语言能实现Python,那么Java行不行呢?
Jython
当然行,所以有Jython。
https://www.jython.org/
Jython 是 Python 语言的 Java 实现。它将代码编译为 Java 字节代码,开发人员在 Python 模块中可以无缝使用 Java 类。
IronPython
微软当然要来凑热闹的。
https://ironpython.net/
微软的一群人把Python引入了微软的 .net 框架,所以有了 IronPython。
这个项目受到微软的支持,因为 IronPython 的主要开发人员都在微软工作。
PyPy
另一个非常著名的Python实现是PyPy。
https://www.pypy.org/
PyPy 可能是最令人兴奋的 Python 实现,因为其目标就是将 Python 重写为 Python。在 PyPy 中,Python 解释器本身是用 Python 编写的。而且,PyPy 的运行速度是 CPython 的4倍。
当然 PyPy 也有缺点:许多用C语言实现的模块在 PyPy 中无法使用。
Cython
最后说一个容易和CPython混淆的实现:Cython。
https://cython.org/
Cython是让Python脚本支持C语言扩展的编译器,Cython能够将Python+C混合编码的.pyx脚本转换为C代码,主要用于优化Python脚本性能或Python调用C函数库。
当需要高性能的库时,程序员可以选择使用Cython来编写CPython可以调用的模块。
上节课我们讲过Python模块,有很多对性能要求高的数据结构,列表等内置模块,就是Cython编写的。
Cython编写的代码,在极端情况下,可以比 CPython编写的代码运行速度快上几十倍。实际上Cython的速度就是C语言的速度。
当然,不同的要选择需要不同的环境。极端的速度比较没有意义。
如何选择
对于曾老师的Python课上的同学,大家学好CPython就好啦!
刚才我们讲到了几种Python:
CPython 最常用的 Python
PyPy 用 Python 实现的 Python,支持 JIT
Jython 用Java 实现的 Python
IronPython .NET 平台下的 Python
Cython Python 和 C/C++ 语言语法的混合体,一般用来扩展 Python ,实现更高性能的 Python 模块。
为了让 Python 更快更方便,程序员们也是操碎了心。其实 Python 语言的实现远不止上面这五个,你还能找出更多么?
问答
学习群中的 Aaron 同学的提问:
曾老师 下午好呀
我想问下 那些做数据监测的第三方服务商比如app annie/sensor tower 主要依靠的是什么技术呢?
曾老师的回答:
如果是说数据获取方式,Annie 的主要来源有三个:
一是与他们自有的 App/SDK 以及与他们合作的 App/SDK,这些 App 会将数据回传到 Annie
二是开发者自己的上报,在 Annie 后台可以填写 Itunes Connect 帐号,Annie 拿到帐号当然是可以为所欲为
三应该是爬虫。Annie 肯定有爬虫。
Annie 的数据主要还是通过大数据加上 AI 做预测,数据越多预测越准。根据我们的比较,当数据量没有那么大的时候,很多数据是不准确的,主要看趋势吧。