访问classmethod引发参数计数cython中的错误

时间:2015-02-03 07:26:21

标签: python cython

我有一个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

0 个答案:

没有答案