环路转换用Cython

2024-09-27 00:18:02 发布

您现在位置:Python中文网/ 问答频道 /正文

使用cython -a,我发现for i in range(0, a, b)语句作为python循环运行(在cython -ahtml输出中是非常黄的一行)。ia和{}被cdef-ed为int64_t。在

然后我尝试了“旧”语法for i from 0 <= i < b by a。从cython -a的输出来看,它似乎编译得非常理想。在

范围(0,a,b)在这里没有被优化,或者这是与实现绑定在一起的预期行为吗?在


Tags: infromforby语法range语句cython
1条回答
网友
1楼 · 发布于 2024-09-27 00:18:02

Automatic range conversion仅在cython可以在编译时确定步骤的符号时应用。由于本例中的步骤是有符号类型,因此无法返回python循环。在

请注意,当前即使类型是unsigned cython仍然返回到python循环中,这是一个(相当古老的)杰出的进一步优化,编译器可以做但没有。请查看此票证以了解更多信息:

http://trac.cython.org/ticket/546

相关问题 更多 >

    热门问题