Cython是一个编程语言,它通过类似Python的语法来编写C扩展并可以被Python调用.既具备了Python快速开发的特点,又可以让代码运行起来像C一样快,同时还可以方便地调用C library。
先举个栗子:四步,
(1)新建一个文件helloworld.pyx,编辑代码:
def primes(int nb_primes):
cdef int n, i, len_p
cdef int p[1000]
if nb_primes > 1000:
nb_primes = 1000
len_p = 0
n = 2
while len_p < nb_primes:
for i in p[:len_p]:
if n % i == 0:
break
else:
p[len_p] = n
len_p += 1
n += 1
result_as_list = [prime for prime in p[:len_p]]
return result_as_list
(2)新建一个文件setup.py,编辑代码:
#-*-coding:utf-8-*-
from distutils.core import setup
from Cython.Build import cythonize
setup(
ext_modules = cythonize("helloworld.pyx")
)
(3)以上两个文件放在用一个文件夹,运行:
python3.6 setup.py build_ext --inplace
(4)编辑python3.6代码:
import helloworl helloword.primes(1000)
经过实验,用cython优化的代码比直接用python快了15倍