언어 | Framework/Python

[Python] Embedding Python return 값 여러 개 받기

woongs_93 2021. 11. 12. 17:34
반응형
PyObject *pFunc, *pArg, *pResult;
PyObject *pValue1, *pValue2, *pValue3;
PyObject *ob1 = NULL, *ob2 = NULL, *ob3 = NULL;

// Function name
pFunc = PyObject_GetAttrString(m_pModule, "func");

if (pFunc && PyCallable_Check(pFunc)) {
	// Set values
	pValue1 = PyLong_FromLong('long_value');
	pValue2 = PyLong_FromLong('long_value');
    	pValue3 = PyLong_FromLong('long_value');
	
	// Set arg
   	pArg = PyTuple_New(3);
    	PyTuple_SetItem(pArg, 0, pValue1);
	PyTuple_SetItem(pArg, 1, pValue2);
	PyTuple_SetItem(pArg, 2, pValue3);
    
    	// Call Function
    	pResult = PyObject_CallObject(pFunc, pArg);

	// Get Result
	PyArg_ParseTuple(pResult, "O|O|O:pResult", &ob1, &ob2, &ob3);
    
    	// 나머지는 ob1,2,3을 PyObject->C++ 변수로 변경하면 된다.
}
반응형