Cython的特点与作用

Cython是一个将Python代码转换为C语言的编译器,提供C的编译速度并允许直接调用C库。在Cython中,%操作符与C语言保持一致。Cython的特殊方法仅适用于cdef class,且__cinit__和__init__分别进行C级别和Python级别的初始化。def, cdef和cpdef用于定义不同类型的函数,其中cdef和cpdef可提高性能,但cdef函数不能直接被Python调用,而cpdef兼顾Python和C调用但性能稍降。" 132791189,11934545,Linux基础操作指南:文件系统与常用命令,"['Linux', '运维']
摘要由CSDN通过智能技术生成

1.Cython

源于Pyrex,Cython项目借助于源代码编译器将Python代码转换为同等的C语言,这是在CPython(主Python运行环境主要是CPython,由C语言编写而成。)运行环境下完成的,但 具有C语言的编译速度及直接调用C库的能力;同时它也保留了Python源代码的接口,这使得Cython可直接被Python代码使用。

以上可以推出Cython的两个用途:(1)以快速的二进制模块扩展CPython解释器;(2)为Python提供使用C扩展库的接口。

那么Cython中是如何将Python代码转换为C语言的呢?

其中一点是Cython分配C语义给部分代码,使之可以翻译为高效的C代码。Cython中的类型声明用于两个目的:将代码段从动态的Python语义移动到静态且快速的C语义;直接操作外部库定义的类型。

2.Python与C语言在%上的区别

在Python中,%为取模,而C中,%为取余;

取模与取余的公式相同:例如求解a%b,令c=a//b(a对b取整,即求整数商),a%b=a-c*b。

不同在于取整之时,取模运算中取整是向负无穷取整,而取余运算中取整是向0取整。

故同样对于-1%5的运算:

Python中,-1//5=-1(向负无穷),而C中int/int的取整运算为-1/5=0(向0);

故Python的-1%5输出为4,C的-1%5输出为-1.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值