cython继承

Ele*_*zzi 5 inheritance cython

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

比我有B继承自A,

对于BI而言,B.pxd具有一些功能

B.pyx

class Bclass(A):
    #all the funcions body
Run Code Online (Sandbox Code Playgroud)

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

我做的是:

B.pyx

cimport A
import A
from A import Aclass
cdef Bclass(Aclass):
   #body
Run Code Online (Sandbox Code Playgroud)

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

如果我只在一个file.pyx中执行此操作它没有问题,但使用files.pxd它不会.

Nik*_*s R 7

使用

from A cimport Aclass
cdef class Bclass(Aclass):
    # ...
Run Code Online (Sandbox Code Playgroud)

要么

cimport A
cdef class Bclass(A.Aclass):
    # ...
Run Code Online (Sandbox Code Playgroud)

注意,Aclass必须是cdef'fed class,Cython 扩展类型 不能从Python类继承.