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 サイトの他の関連記事を参照してください。