【发布时间】:2012-01-28 11:04:24
【问题描述】:
我对 SWIG (C + python) 有一个奇怪的问题
在 C 中,我有一个函数返回指向结构 elements_t 的指针。我在 python 中调用函数,得到结果(指针),但我无法访问结构的元素..
typedef struct elements elements_t;
struct elements {
int nelements;
// ... other stuff
};
elements_t* get_elements()
{
elements_t* p;
// ...
return p;
}
在 python 中我会这样做:
r = clibrary.get_elements()
print r
# <Swig Object of type 'elements_t *' at 0xb77029f8>
print r.nelements
# AttributeError: 'SwigPyObject' object has no attribute 'nelements'
所以我得到最后一个错误,即没有 nelements,即使 p 指向正确的结构......
【问题讨论】:
-
是的,问题中有错误。代码仍然不起作用:(
-
好的,既然 r 是一个指向结构体的指针,是否可以只返回结构体?我正在查看swig.org/Doc1.3/Python.html 的“31.3.6 结构”部分,其中有一些示例。