学以致用
参考网站https://docs.python.org/3.3/c-api/index.html
Py_SetPythonHome();
用来设置Python脚本的目录,如需设置必须在init前
Py_Initialize();
初始化python环境
PyObject* pModule = PyImport_ImportModule("文件名")
载入模块,存在pModule句柄中。
PyObject* pExecute = PyObject_GetAttrString(pModule, "函数名");
载入模块中定义的函数,存在pExecute句柄中。
PyObject* pParam = Py_BuildValue("(s)", "参数");
定义需要输入函数的参数
PyObject* pResult = PyObject_CallObject(pExecute , pParam);
调用函数,并得到输出(参数需要元组格式)
PyObject* PyObject_CallFunctionObjArgs(PyObject* callable, ..., NULL)
调用函数,并得到输出(参数需要PyObject格式,最后以NULL结尾)
PyArg_Parse(pResult, "s", &pBuf)
解析函数输出,并存入预定义的地址中。
PyObject* obj = PyObject_GetAttrString(pModule, 变量名);
取回python模块中的变量。
int PySequence_Check
(PyObject*o)
检查该对象是否是序列。.
Py_ssize_t PySequence_Size
(PyObject*o)
Py_ssize_t PySequence_Length
(PyObject*o)
返回对象序列长度。
Py_DECREF(py对象)
删除之前定义的python对象
Py_Finalize();
结束对python的调用。