Cython 编程入门
在学习和训练mask rcnn中发现用了cython编程,特此整理。
简介
Cython是一个快速生成Python扩展模块的工具,从语法层面上来讲是Python语法和C语言语法的混血,当Python性能遇到瓶颈时,Cython直接将C的原生速度植入Python程序,这样使Python程序无需使用C重写,能快速整合原有的Python程序,这样使得开发效率和执行效率都有很大的提高,还能加速程序的速度。
准备
方法1 官网下载安装,Cython官网地址是:http://cython.org/
方法2 直接用在现有环境下直接用anaconda安装cython
使用命令 conda install cython
cython注意事项
1…pyx中用cdef定义的东西,除类以外对.py都是不可见的;
2.py中是不能操作C类型的,如果想在.py中操作C类型就要在.pyx中从python object转成C类型或者用含有set/get方法的C类型包裹类;
3.虽然Cython能对Python的str和C的“char *”之间进行自动类型转换,但是对于“char a[n]”这种固定长度的字符串是无法自动转换的。需要使用Cython的libc.string.strcpy进行显式拷贝;
4.回调函数需要用函数包裹,再通过C的“void *”强制转换后才能传入C函数。