【发布时间】:2012-04-06 18:23:15
【问题描述】:
如果我使用的是 boost.python 或 pyplusplus,我如何包装一个 int 指针,或者任何作为类成员变量的指针?
例如,我将如何包装以下类中的x:
class Foo{
int * x;
}
【问题讨论】:
标签: c++ python boost boost-python py++
如果我使用的是 boost.python 或 pyplusplus,我如何包装一个 int 指针,或者任何作为类成员变量的指针?
例如,我将如何包装以下类中的x:
class Foo{
int * x;
}
【问题讨论】:
标签: c++ python boost boost-python py++
首先,您需要向 Python 公开类和属性。
#include <boost/python.hpp>
BOOST_PYTHON_MODULE(mylib)
{
using namespace boost::python;
class_<Foo>("Foo")
.def_readwrite("x", &Foo::x);
}
在 Python 中调用类同样简单。
>>> import mylib
>>> fooObj = mylib.Foo()
>>> fooObj.x = 3
>>> print 'fooObj.x is ', fooObj.x
fooObj.x is 3
【讨论】:
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: No to_python (by-value) converter found for C++ type: int*