3

Я пытался передать значение, вызвав файл C из python, а затем снова вернул это значение из C в python.Как вернуть значение из C в python из типа функций PyObject от C?

Мой вопрос, как это сделать? Можно ли использовать возврат Py_BuildValue(a+b) вид вещи?

#include <Python.h> 

static PyObject * 
hello_world(PyObject *self, PyObject *noargs) 
{ 
    int a=5,b=10; 

    return Py_BuildValue(a+b); //This is Errorus. 
} 


static PyMethodDef 
module_functions[] = { 
    { "hello_world", hello_world, METH_NOARGS, "hello world method" }, 
    { NULL } 
}; 



PyMODINIT_FUNC 
inittesty2(void) 
{ 
    Py_InitModule("testy2", module_functions); 
} 

ответ

0

Вы можете использовать явные конструкторы для целых чисел PyInt_FromLong или PyLong_FromLong.

Вы можете найти такие функции для любого типа, который вы можете создать с помощью Py_BuildValue и получить небольшую безопасность по типу.