cython 继承
Posted
技术标签:
【中文标题】cython 继承【英文标题】:cython inheritance 【发布时间】:2019-03-27 06:43:56 【问题描述】:我有一个 A.pxd(仅包含函数声明)和 A.pyx,其中仅包含一个包含所有函数体的类 A。
比我有从 A 继承的 B,
对于 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】:使用
from A cimport Aclass
cdef class Bclass(Aclass):
# ...
或
cimport A
cdef class Bclass(A.Aclass):
# ...
注意Aclass
必须是cdef
'fed 类,Cython extension types 不能从 Python 类继承。
【讨论】:
当我执行 cimport A 时,这意味着我正在导入 A.pxd,对吧? 它不再给我的参数 Bclass(A.Aclass) 带来错误,但是当我将 Btype 转换为 Atype 时,它说:castinA
是什么?请改用<Aclass>myBclassInstance
那么请将问题标记为已回答。我很高兴能帮助你。 :)以上是关于cython 继承的主要内容,如果未能解决你的问题,请参考以下文章