我很好奇让 C++ 和 Python 相互交流的最灵活、最有效和最无缝的方法是什么。竞争者似乎是 Pybind11、Boost.Python,两者都不是(只需编写函数和包装器,如下所示)。
using namespace boost::algorithm;
static PyObject* strtest(PyObject* self, PyObject* args)
{
std::string s = "Boost C++ Libraries";
to_upper(s);
PyObject * python_val = Py_BuildValue("s", s.c_str());
return python_val;
}
PyMODINIT_FUNC initmath_demo(void)
{
static PyMethodDef methods[] = {
"Test boost libraries" },
{ NULL, NULL, 0, NULL }
};
PyObject *m = Py_InitModule("math_demo", methods);
}