如果您想要达到最佳性能,应该知道如此答案所述:一旦函数被调用,在 cdef 和 def 函数内部运行的代码速度没有区别。因此,为了实现最佳的Cython性能,您应该始终静态类型所有参数和变量,然后会有冲动使用 cdef,但是下面我构建了一个流程图以解释其中的一些注意事项(也基于前面提到的回答): 此外,请注意以下内容: cpdef 函数会导致Cython生成一个 cdef 函数(允许从Cython快速调用函数)和一个 def 函数(允许您从Python中调用)。内部地, def 函数只调用 cdef 函数。而且根据Cython文档:这利用了早期绑定,以便在使用C基本类型(使用 cdef )时, cpdef 函数可能尽可能地快。当传递Python对象时, cpdef 函数使用动态绑定,这可能会慢得多,甚至与声明的 def 函数一样慢。还存在一个特定情况基准测试(经常从Python中调用函数),其结果如下图所示: