我对很多地方看到的以下代码感到困惑:
cdef list my_list
Run Code Online (Sandbox Code Playgroud)
我很困惑因为list不是C数据类型,而是Python数据类型.为什么人们会使用cdef而不是def呢?
我非常喜欢这个功能,因为有时候我需要在我的代码中使用list,而且在没有python列表的情况下将代码重构为C需要付出巨大的努力.我很困惑Cython正在做什么,当a list定义cdef并且让所有方法暴露给我们时.
我试图搜索文件,但没有运气.任何帮助,将不胜感激!
cdefPython数据类型只允许Cython采用一些(小)快捷方式并进行类型检查.
这不会导致代码明显加快,因为Python开销仍然存在.对于方便的数据类型,您可能希望使用numpy.array或cpython.array.array键入内存视图.