除了
.pyx
源文件,Cython 使用
.pxd
文件,像 C 头文件般工作 – 它们包含只供 Cython 模块包括的 Cython 声明 (有时是代码区间)。
pxd
文件被导入进
pyx
模块通过使用
cimport
关键词。
pxd
文件有很多用例:
它们可用于共享外部 C 声明。
它们可包含非常适合 C 编译器的内联函数。这种函数应标记
inline
,范例:
cdef inline int int_min(int a, int b): return b if b < a else a
当伴随相等命名
pyx
文件,它们为 Cython 模块提供 Cython 接口,以便其它 Cython 模块可以使用比 Python 更高效协议与之通信。
在集成范例中,可能将其分解成
pxd
文件像这样:
添加
cmath.pxd
函数,定义的可用 C 函数来自 C
math.h
头文件,像
sin
。那么只需做
from
cmath
cimport
sin
in
integrate.pyx
.
添加
integrate.pxd
以便其它以 Cython 编写的模块可以定义快速自定义函数以集成。
cdef class Function: cpdef evaluate(self, double x) cpdef integrate(Function f, double a, double b, int N)
注意,若有带属性的 cdef 类,属性必须声明在类声明
pxd
文件 (若有使用),不是
pyx
文件。编译器会告诉你这点。