cdef在Cython中列出my_list

时间:2014-05-24 20:44:33

标签: python cython

我对以下在很多地方看到的代码感到困惑:

cdef list my_list

我很困惑,因为list不是C数据类型,而是Python数据类型。为什么人们会使用cdef代替def

我非常喜欢这个功能,因为有时候我需要在我的代码中使用list,而且在没有python列表的情况下将代码重构为C需要付出巨大的努力。当listcdef定义并且所有方法都暴露给我们时,我对Cython正在做什么以及Cython正在做什么感到困惑。

我试图搜索文件,但没有运气。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:6)

cdef Python数据类型只允许Cython采用一些(小)快捷方式并进行类型检查。

这不会导致代码明显加快,因为Python开销仍然存在。对于方便的数据类型,您希望使用numpy.arraycpython.array.array键入内存视图。