首頁 >後端開發 >C++ >如何從透過 C/C 呼叫的 Python 方法中提取回傳值?

如何從透過 C/C 呼叫的 Python 方法中提取回傳值?

DDD
DDD原創
2024-12-19 22:37:11534瀏覽

How to Extract Return Values from Python Methods Called via C/C  ?

從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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn