假设我有一个python类对象:
class A:
pass
o = A()
o.a=8 # or any data type such as numpy arrays
我希望将该python对象传递给C ++扩展:
import cpp_lib
cpp_lib.run(o)
从C ++方面,我想访问python对象的成员:
static
PyObject *run(PyObject *self, PyObject *args)
{
PyObject * python_object;
if (!PyArg_ParseTuple(args, "O", &python_object))
{
std::cerr<<"Error parsing python_object from python to cpp extension"<<std::endl;
return Py_None;
}
// std::cout<<python_object.a<<endl;
return Py_None;
}
python对象成员可能是一个numpy数组。
注意:Cython不是一个选项。