我有一个python .py
文件,并将所有cython指令移动到同一个名称.pxd
文件。
mod_a.py:
class A(object):
@classmethod
def simple_method(cls, param1):
return param1 * 2
class B(object):
def method(self):
return A.simple_method(1) # <-- this line
mod_a.pxd:
cdef class A:
cdef simple_method(cls, param1)
mod_b.py:
from mod_a import B
b=B()
b.method()
假设可以从simple_method
调用A
作为类方法,并且它在纯python中工作。但是当cythonize mod_a
时,编译器会在A.simple_method(1)
上引发错误,并显示以下错误消息:
mod_a.py:9:24: Call with wrong number of arguments (expected 2, got 1)
为什么会这样?怎么办?
感谢。
使用:
Python 2.7.6
Cython 0.21.2
这是gist