ホームページ >バックエンド開発 >C++ >C/C 経由で呼び出される Python メソッドから戻り値を抽出する方法

C/C 経由で呼び出される Python メソッドから戻り値を抽出する方法

DDD
DDDオリジナル
2024-12-19 22:37:11506ブラウズ

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

C/C から呼び出された Python メソッドからの戻り値の抽出

C からカスタム Python 関数を呼び出す場合、 C でさらに処理するための戻り値。これは、CPython によって提供されるメソッドを活用することで実現できます。 API.

まず、PyImport_Import():

PyObject* myModuleString = PyString_FromString((char*)"mytest");
PyObject* myModule = PyImport_Import(myModuleString);

を使用して Python モジュールをインポートします。次に、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。