基本上我在Cython中定义了一个基类,其基本结构如下。这在baseclass.pyx文件中
cdef class BaseClass:
def __init__(self, fov):
self.fov = fov
cdef Vector3 MyMethod(self, parameter):
cdef Vector3 transformed = Vector3()
return transformed
我有一个python类继承了基本cython类,如下所示:
from baseclass import BaseClass
class Child(BaseClass):
def __init__(self, near=1e-6, far=1e-6):
self._near = near
self._far = far
# more methods here
最后,我创建了子类的一个实例,并尝试调用父方法:
temp = Child()
temp.MyMethod(parameter)
我得到一个错误:
'Child' has no attribute 'MyMethod'.
您需要使用
cpdef
,如下所示:cpdef
关键字使Cython生成cdef函数和def函数。后者基本上只调用前者,但允许您从Python调用函数相关问题 更多 >
编程相关推荐