C/C에서 호출된 Python 함수에서 반환 값 추출
C/C에서 사용자 정의 Python 함수를 호출하면 기능 확장이 가능합니다. 그러나 반환 값을 추출하는 것은 어려울 수 있습니다. 다음은 Python C-API를 사용하는 솔루션입니다.
Python 모듈
Python 모듈(mytest.py) 만들기:
import math def myabs(x): return math.fabs(x)
C/C 코드
python3 인터프리터 가져오기 C/C(test.cpp)에서:
#include <Python.h> int main() { Py_Initialize(); PyRun_SimpleString("import sys; sys.path.append('.')");
함수 가져오기 및 호출
PyObject* myModuleString = PyString_FromString("mytest"); PyObject* myModule = PyImport_Import(myModuleString);
PyObject* myFunction = PyObject_GetAttrString(myModule, "myabs");
PyObject* args = PyTuple_Pack(1, PyFloat_FromDouble(2.0));
PyObject* myResult = PyObject_CallObject(myFunction, args);
리턴 추출 값
결과를 double로 변환:
double result = PyFloat_AsDouble(myResult);
Usage
이제 C/C 코드에서 다음을 사용할 수 있습니다. 추출된 반환 값 (결과):
printf("Absolute value: %f\n", result);
참고: 이 작업 중에 오류가 있는지 확인하는 것을 잊지 마세요. C-API에 대한 자세한 내용은 공식 문서를 참고하세요.
위 내용은 C/C에서 호출될 때 Python 함수의 반환 값을 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!