cdef类中的超级构造函数

时间:2019-01-11 12:03:42

标签: constructor cython subclass

我正在使用cython包装C库。我想使用cdef class来包装一个简单的结构。该结构确实需要正确初始化一些参数。我将相应的代码放入__cinit__方法中,如下所示:

cdef class Func:
    cdef library.Func* func

def __cinit__(self, int value):
    library.init_func(&self.func, value)

在python代码中,我可以通过f = Func(17)创建一个函数对象。然后,代码可以很好地处理初始化。我的问题如下:假设我想在python(Func)中扩展class MyFunc(Func): ...类。如何将构造函数添加到MyFunc

我想写一个带有其他参数的构造函数来调用 __cinit__(self, int value),其值来自构造函数参数。但是似乎不可能(可能出于充分的理由)从python代码调用__cinit__

是否有某种方法可以在子类中包含构造函数,还是应该围绕函数创建一个包装器并委托方法/属性?

0 个答案:

没有答案