1
Я пишу небольшую программу с Python C/API, которая в основном вызывает простой скрипт Python. Вот код:Python C/API назначает переменную C++
#include <Python.h>
PyObject *pName, *pModule, *pDict, *pFunc;
int main() {
Py_Initialize();
pName = PyString_FromString("simplemodule");
pModule = PyImport_Import(pName);
pDict = PyModule_GetDict(pModule);
pFunc = PyDict_GetItemString(pDict, "simplefunction");
if(PyCallable_Check(pFunc)) {
PyObject_CallObject(pFunc, NULL);
} else {
PyErr_Print();
}
Py_DECREF(pName);
Py_DECREF(pModule);
Py_Finalize();
return 0;
}
Теперь, вот код для simplemodule.py:
def simplefunction():
m = 5*5
return m
Мой вопрос: Как я могу присвоить переменной м в переменную C++, так Я могу использовать его в C++?
Спасибо! Он работает отлично. И если функция модуля возвращает строку, я должен использовать что-то вроде 'PyString_AsString'? – jndok
@jndok, Да, используйте ['PyString_AsString'] (http://docs.python.org/2/c-api/string.html#PyString_AsString). BTW, он возвращает 'char *', а не C++ 'string'. – falsetru