Skip to content

注意事项

原文: http://docs.cython.org/en/latest/src/tutorial/caveats.html

由于 Cython 混合了 C 语言和 Python 语义,因此有些事情可能会有点令人惊讶或反直觉。我们会不断努力让Cython更贴近Python使用者的习惯,因此这个列表将来可能会变化。

  • 给定两个类型int变量aba % b与第二个参数(遵循 Python 语义)具有相同的符号(正负),而不是与第一个符号相同(如在 C)。通过启用 cdivision 指令(Cython 0.12 之前的版本始终遵循 C 语义),可以在某种速度增益下获得 C 行为。
  • 使用无符号类型时需要小心。cdef unsigned n = 10; print(range(-n, n))将打印一个空列表,因为-n在传递给range函数之前已经成为一个很大的正整数(而不是负数)。
  • Python 的float类型实际上包含了 C double值,而 Python 2.x 中的int类型包含了 C long值。


回到顶部