【导语】:这篇文章主要介绍了Cython编程语言,它是Python语言的超集,简而言之:Cython就是具有 C 数据类型的 Python。通过把Cython编译为C语言,运行程序。不仅保留了Python开发方便的特点,还能提升代码的运行速度,非常值得学习。
介绍
Python语言因使用方便、第三方库丰富,得到了许多开发者的青睐。但是Python的缺点也很明显,就是运行速度较慢。为了解决这个问题,Cython出现了,Cython也是一种编程语言,可以把它理解为Python的超集,简而言之:Cython就是具有 C 数据类型的 Python。通过把Cython编译为C语言,可以提升代码的性能。对于使用Python原生对象的代码,效果可能并不明显。但是对于其他没有使用Python对象的代码,或者数值运算等操作而言,效果很不错。
通过使用Cython,我们不仅可以继续利用Python开发快速的特点,又可以让代码运行速度像C语言一样快。本文我们将介绍Cython的更多细节,同时还将简单使用下它。
1. 将Python编译为C语言
在Python中,我们可以直接调用C语言库,包括通用的C库和Python专用的库。在Cython中,我们还能调用使用了Python语法的C语言库。
从语法上看,Cython与Python很相似。如果我们用Cython编译器运行一个Python文件(Python 2.x 和 Python 3.x均可),虽然可以正常运行,但是运行速度与使用Python解释器没有区别。假如我们使用Cython中的类型声明语法来修改Python代码,最终编译时就可以把运行速度较慢的Python对象替换为等效的C语言代码。
注意Cython的使用可以是渐进式的,这意味着开发者要想使用Cython优化原来的Python应用程序,不用刚开始就重写所有代码,只需要更改局部代码就可以。Cython之所以这样设计,是因为在大多数程序中,只有部分代码造成了程序运行慢 - 这可以用帕累托法则解释,也就是“二八准则”。因此Python程序中80%的代码都不用优化,只需对少数关键代码进行优化。我们可以把关键代码用Cython重写,提升性能。其余代码继续使用Python语法,保证代码的简洁性。
2. 简单使用Cython
我们来看看下面这个例子: