從C/C 呼叫的Python 方法中提取回傳值
當從C 呼叫自訂Python 函數時,人們可能希望檢索函數傳回值以在C 中進行進一步處理。這可以透過利用 CPython API 提供的方法來實現。
開始於使用PyImport_Import() 匯入Python 模組:
PyObject* myModuleString = PyString_FromString((char*)"mytest"); PyObject* myModule = PyImport_Import(myModuleString);
接下來,使用PyObject_GetAttrString() 取得函數的參考:
PyObject* myFunction = PyObject_GetAttrString(myModule,(char*)"myabs");
為函數建立對函數的參考參數並使用PyObject_CallObject呼叫它():
PyObject* args = PyTuple_Pack(1,PyFloat_FromDouble(2.0)); PyObject* myResult = PyObject_CallObject(myFunction, args);
最後,檢索 C double結果:
double result = PyFloat_AsDouble(myResult);
請注意,錯誤處理至關重要,應該考慮到這些操作期間的潛在錯誤。
以上是如何從透過 C/C 呼叫的 Python 方法中提取回傳值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!