Извлечение возвращаемого значения из функции Python, вызванной в C/c
вызов функции Python из C/C позволяет расширять функциональность, но извлечение возвращаемого значения может быть сложной. Вот решение с использованием Python C-API.
модуль Python
создать модуль Python (myTest.py):
import math def myabs(x): return math.fabs(x)
Code C/c
импортировать интерпретатор Python3 в c/c (test.cpp):
#includeint main() { Py_Initialize(); PyRun_SimpleString("import sys; sys.path.append('.')");
импорт и вызов функции
]PyObject* myModuleString = PyString_FromString("mytest"); PyObject* myModule = PyImport_Import(myModuleString);
PyObject* myModuleString = PyString_FromString("mytest"); PyObject* myModule = PyImport_Import(myModuleString);
PyObject* myModuleString = PyString_FromString("mytest"); PyObject* myModule = PyImport_Import(myModuleString);
PyObject* myModuleString = PyString_FromString("mytest"); PyObject* myModule = PyImport_Import(myModuleString);double result = pyfloat_asdouble (myresult); Теперь используйте извлеченное возвращаемое значение (result):
printf ("Абсолютное значение: %f \ n", result);
примечание:
не забудьте проверить любые ошибки во время этих операций. Для получения более подробной информации о C-API см. В официальной документации.]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3