从 C++ 中查找 Python 函数参数的方法如下:
以下是一个示例代码:
#include<Python.h>
int main() {
PyObject* pModuleName;
PyObject* pModule;
PyObject* pFunc;
PyObject* pArgs;
PyObject* pValue;
Py_Initialize();
pModuleName = PyUnicode_FromString("my_module");
pModule = PyImport_Import(pModuleName);
Py_DECREF(pModuleName);
pFunc = PyObject_GetAttrString(pModule, "my_function");
pArgs = PyTuple_New(2);
PyTuple_SetItem(pArgs, 0, PyLong_FromLong(1));
PyTuple_SetItem(pArgs, 1, PyUnicode_FromString("Hello, world!"));
pValue = PyObject_CallObject(pFunc, pArgs);
Py_DECREF(pArgs);
if (pValue == NULL) {
PyErr_Print();
fprintf(stderr, "Call failed\n");
return 1;
}
Py_DECREF(pValue);
Py_DECREF(pFunc);
Py_DECREF(pModule);
Py_FinalizeEx();
return 0;
}
在这个示例代码中,我们从 C++ 中调用了 Python 函数 my_module.my_function
,并传递了两个参数:一个整数和一个字符串。
需要注意的是,在使用 Python C API 时,需要确保 Python 解释器已经初始化,并且在使用完毕后需要释放资源。同时,需要注意 Python 的内存管理机制,确保在使用完毕后释放资源。
领取专属 10元无门槛券
手把手带您无忧上云