cython继承

时间:2011-10-04 17:15:37

标签: inheritance cython

我有一个A.pxd(只有函数声明)和A.pyx,它只包含一个包含所有函数体的A类。

比我有B继承自A,

对于B我有B.pxd和一些函数

B.pyx

class Bclass(A):
    #all the funcions body

我现在想告诉B.pyx如何将A识别为类型名称?

我所做的是:

B.pyx

cimport A
import A
from A import Aclass
cdef Bclass(Aclass):
   #body

但它告诉我:A不是类型名称

如果我只在一个file.pyx中执行此操作,它可以正常工作,但使用files.pxd它不会。

1 个答案:

答案 0 :(得分:7)

使用

from A cimport Aclass
cdef class Bclass(Aclass):
    # ...

cimport A
cdef class Bclass(A.Aclass):
    # ...

请注意,Aclass必须是cdef'fed class,Cython extension types 不能继承Python类。