Skip to content

附录B:类型速查表

本附录提供类型相关快速参考。


功能说明:Python类型与Cython类型的对应关系。

PythonCythonC类型说明
intintint32位整数
intlonglong平台相关
intlong longint64_t64位整数
floatfloatfloat32位浮点
floatdoubledouble64位浮点
strstrPyObject*Unicode字符串
listlistPyObject*动态数组
dictdictPyObject*哈希表
boolbintint布尔值
bytesbyteschar*字节数组

功能说明:常见类型声明示例。

# 变量声明
cdef int x = 10
cdef double pi = 3.14159
cdef str name = "Cython"
cdef bint flag = True
# 指针声明
cdef int* ptr
cdef double* d_ptr
cdef char* c_str
# 数组声明
cdef int arr[10]
cdef double matrix[3][4]
# typed memoryview
cdef double[:] vec1d
cdef int[:, :] mat2d

功能说明:不同类型的性能差异。

模式性能说明
C类型(int/double)最快无GC开销
typed memoryview极快零拷贝数组
Python对象慢有GC开销
GIL操作中Python/C切换

性能优化原则:

  1. 数值计算用C类型
  2. 大数组用typed memoryview
  3. 避免Python对象和C类型混合
  4. 热点代码用nogil

功能说明:函数定义类型对比。

声明Python调用C调用性能
defYesNo慢
cpdefYesYes中
cdefNoYes最快