查看原文
其他

Python日课-2.5-python语言的不同实现

曾嵘 曾嵘胡扯的地方 2023-08-11

曾老师的 Python 课(链接可点击) 第一课的所有内容已经全部发布,包括课程 PPT、课程视频都可以免费获取,可以使用微信扫描下面的二维码进群获取。

这套课程有两条教学线:

  1. 现场教学,约两周一次,每次一小时,主要为实际案例的讲解。

  2. 微信群教学,每日一次,由易到难讲解 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 做预测,数据越多预测越准。根据我们的比较,当数据量没有那么大的时候,很多数据是不准确的,主要看趋势吧。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存