首页 > 解决方案 > 从 Cython 中的基类继承方法

问题描述

我有以下 Cython 类,它包含一个 C++ 类CPP_Holder(在.pxd文件中声明)作为类属性

cdef class CythonHolder:
    cdef CPP_Holder holder

    def __cinit__(self, int parameter):
        self.holder = CPP_Holder(parameter)

    def get_param(self):
        return self.holder.param

    [other methods]

由于我有一组类似的类(如)CythonHolder,它们都具有诸如get_param方法,即

cdef class CommonMethods:
    def get_param(self):
        return self.holder.param 
    [other methods...]

cdef class CythonHolder(CommonMethods):
    cdef CPP_Holder holder

    def __cinit__(self, int parameter):
        self.holder = CPP_Holder(parameter)

不幸的是,它无法编译,因为错误抱怨self.holder未在 class 中定义CommonMethods。作为 Cython 的新手,我知道它的cdef class行为与传统的 Python 不同。但是,是否有一种机制可以实现这种简单的继承?

标签: pythoninheritancecython

解决方案


推荐阅读