constructor - cdef 类中的超级构造函数
问题描述
我正在使用 cython 包装一个 C 库。我想用 acdef class
来包装一个简单的结构。该结构确实需要一些参数才能正确初始化。我将相应的代码放入__cinit__
方法中,如下所示:
cdef class Func:
cdef library.Func* func
def __cinit__(self, int value):
library.init_func(&self.func, value)
在 python 代码中,我可以通过f = Func(17)
. 然后代码处理初始化就好了。我的问题如下:假设我想Func
在 python ( class MyFunc(Func): ...
) 中扩展类。如何将构造函数添加到 to MyFunc
?
我想编写一个带有其他参数的构造函数,该构造函数使用
__cinit__(self, int value)
从构造函数参数派生的值进行调用。但似乎不可能(可能有充分的理由)__cinit__
从 python 代码中调用。
有没有办法在子类中包含构造函数,或者我应该在函数和委托方法/属性周围创建一个包装器?
解决方案
推荐阅读
- angular - Google Maps JavaScript API 错误:ApiNotActivatedMapError 尽管 Google Maps JavaScript API 已启用
- sql - SQL通过触发器更新两个不同的服务器
- selenium - Robot Framework Selenium Go To 关键字被浏览器弹出窗口阻止
- reactjs - page/Activity/ActivityTable ✖ 找不到包“page/Activity/ActivityTable”。你安装了吗?当我使用雪包开发时
- highcharts - highcharts 瀑布栈仅中级系列
- google-sheets - 突出显示 Google 表格中许多单元格中的重复值
- regex - 除了该模式位于行首的行之外,如何匹配第一次出现的模式(或字符)?
- visual-studio - 修改 edmx 图后 Visual Studio IDE 中的奇怪行为
- android - 是否可以将使用本机反应制作的 GUI 与本机代码 (kotlin) 中的实用方法相结合?
- google-sheets - 具有转置列的 Google 表格笛卡尔积