Вызов метода Python от C/C++ и извлечение его возвращаемого значения

Я хотел бы вызвать пользовательскую функцию, которая определяется в модуле Python от C. У меня есть некоторый предварительный код, чтобы сделать это, но он просто печатает вывод к stdout.

mytest.py

import math

def myabs(x):
    return math.fabs(x)

test.cpp

#include <Python.h>

int main() {
    Py_Initialize();
    PyRun_SimpleString("import sys; sys.path.append('.')");
    PyRun_SimpleString("import mytest;");
    PyRun_SimpleString("print mytest.myabs(2.0)");
    Py_Finalize();

    return 0;
}

Как я могу извлечь возвращаемое значение в C дважды и использовать его в C?

49
задан Amro 18 August 2012 в 23:03
поделиться