python - 可以在 python 中扩展来自 FFI 的 cstruct 吗?
问题描述
我正在用 CFFI 包装一个库。我有一些简单的结构,我想保留 C 结构(或至少与 c 结构互操作),但我想为它们添加一些额外的方法,例如转换值、数据转换等。CFFI 是否提供这样做的便利,还是我最好的选择组合,使 c 结构成为一个 python 类的数量?所以说我在 ffi cdef 中有一个这样的结构:
typedef struct {
int iArgType;
void *pData;
} OptionArg_t;
该结构有一个整数值,对应于数据指针后面数据的假定数据类型。在 python 中,我想使用如下对象:
option_arg = c_get_arg() #=> some c function that creates a specific struct
option_arg.data #=> data cast to appropriate type based on custom logic, maybe transformed or even producing a python object
c_function(option_arg) # calling a c function with the struct, without having to unwrap it
cFFI 是否允许这样做,或者我有办法欺骗它吗?或者我是否被迫总是在另一个对象中手动包装和解包结构?
解决方案
推荐阅读
- c# - C# .net core - 对内存缓存的依赖注入引用
- amazon-web-services - 将现有 AWS 机密引入 Cloud Formation 堆栈
- highcharts - Highcharts - SMA 指标不显示
- reactjs - React Konva 旋转/旋转动画
- c - 具有中断选项的功能的顺序执行
- typescript - 打字稿。定义函数对象的类型
- ruby - 无法使用没有 rails 的 mysql2 构建 gem 原生扩展
- github - 在 digitalocean droplet 这样的服务器上拥有私有 ssh 密钥以连接到 github 是否安全?
- html - 如果按钮被禁用,CSS 悬停
- python - 比较来自 python 的 Sikit-Learn 和来自 R 的 varSelRF