我使用手动 cythonize *.pyx
文件
cython -3 -Wextra mymodule.pyx
我使用-Wextra
选项生成额外的警告,对于清理冗余代码片段很有用。然而,许多形式的警告
warning: mymodule.pyx:123:45: local variable 'x' might be referenced before assignment
是打印出来的,我不喜欢。我理解为什么从编译器的角度来看这并不明显,但在我的特殊情况下,在任何情况下 x
在引用之前都不可能被赋值。
因此,我想继续使用 -Wextra
但过滤掉这种类型的警告,类似于 gcc 的 -Wno
选项。然而我一直没能找到这样的功能。
最佳答案
cython 中的警告是通过编译器指令控制的;他们似乎只是部分documented目前,但您可以在 Cython source 中看到完整列表。
在这种情况下,您需要将 warn.maybe_uninitialized
传递给 --directive
选项。
$ cython test.pyx -Wextra
warning: test.pyx:7:12: local variable 'x' might be referenced before assignment
$ cython test.pyx -Wextra --directive warn.maybe_uninitialized=False
# no warning
关于python - 禁止来自 Cython 的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48384054/