将python类对象作为参数传递给c库

时间:2012-11-16 08:13:01

标签: python python-2.7

我有一个python脚本,调用从C共享库导出的方法。

如何将python类对象作为参数传递给其中一个方法。

Python代码:

class module(object)
     def __init__(self, param1):
         self._param1 = param1

lib = CDLL("name")
mod = module1(10)
lib.func(pointer(mod))

C示例代码:

struct module {
  int val;
};
extern "C" void func(struct module* data);

我可以在c函数“func”中访问存储在module1参数中的值。

如何更多地了解如何实现此功能?

1 个答案:

答案 0 :(得分:1)

一点点护目镜找到了一条路:

你可以在python中声明一个结构:

class POINT(Structure):
    _fields_ = [("x", c_int),
               ("y", c_int)]

并传递此结构的引用。

参考:ctypes docs page