我有一个cdef class
,其中包含一个没有参数的静态def method
。例如:
cdef class Test:
@staticmethod
def test():
pass
不幸的是,当我编译它时,我有一个警告告诉函数声明不是原型:
$ echo "import pyximport; pyximport.install(); import test_pyx;" | python3
[...]/.pyxbld/temp.linux-x86_64-3.4/pyrex/test_pyx.c:673:1:
warning: function declaration isn't a prototype [-Wstrict-prototypes]
static PyObject *__pyx_pf_8test_pyx_4Test_test(); /* proto */
^
在我看来,听起来很明显C函数应该至少有一个参数,在这种情况下是void
。不幸的是,我无法在def
方法中定义void参数。
另一方面,我无法使用cpdef
方法,因为在cython中尚未支持@staticmethod
注释。
我应该如何避免这种警告(我在构建生产环境包时使用-Werror标志)?
非常感谢你的帮助。