ホームページ > バックエンド開発 > C++ > C/C から呼び出された Python メソッドの戻り値を取得するにはどうすればよいですか?

C/C から呼び出された Python メソッドの戻り値を取得するにはどうすればよいですか?

DDD
リリース: 2024-12-07 06:36:16
オリジナル
385 人が閲覧しました

How Can I Retrieve the Return Value of a Python Method Called from C/C  ?

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

この記事では、C/C から Python メソッドを呼び出す方法を示します。そしてその戻り値を抽出します。質問で提供されているコードは結果を標準出力に効果的に出力できますが、C でさらに操作するために値をキャプチャする方法は提供されません。

推奨されるアプローチには、Python C- Python オブジェクトおよび関数との直接対話を可能にする API。コードを変更して戻り値を抽出する方法の例を次に示します。

PyObject* myModuleString = PyString_FromString((char*)"mytest");
PyObject* myModule = PyImport_Import(myModuleString);
PyObject* myFunction = PyObject_GetAttrString(myModule, (char*)"myabs");
PyObject* args = PyTuple_Pack(1, PyFloat_FromDouble(2.0));
PyObject* myResult = PyObject_CallObject(myFunction, args);
double result = PyFloat_AsDouble(myResult);
ログイン後にコピー

このコードでは、最初にモジュールをインポートし、関数への参照を取得し、関数の引数を含むタプルを作成します。 、関数を呼び出し、最後に戻り値を double として抽出します。

コメントで Mark Tolonen が示唆しているように、適切な処理を保証するには、エラーを適切に管理することが不可欠です。詳細および複雑な使用例については、http://docs.python.org/c-api/ にある Python C-API ドキュメントを参照してください。

以上がC/C から呼び出された Python メソッドの戻り値を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート