Python メソッドの呼び出しと C/C からの戻り値の取得
C /C 環境では、アクセスする必要があるシナリオが発生する可能性があります。 Python モジュール内で定義された関数。この記事では、これらの関数を効果的に呼び出して戻り値を抽出する方法について説明します。
次の Python コード スニペットを考えてみましょう。
import math def myabs(x): return math.fabs(x)
この関数を C から呼び出すには、Python を利用できます。 C-APIの機能。まず、API アクセス用の Python.h ヘッダーを含めます:
#include <Python.h>
Python 環境を開始するには、Py_Initialize() を呼び出します:
Py_Initialize();
次に、必要な Python モジュールをインポートできます。 :
PyRun_SimpleString("import mytest;");
カスタム関数を実行するには、 PyObject_GetAttrString() 関数を使用して参照を取得し、PyTuple_Pack() 関数を使用して引数を作成し、PyObject_CallObject() を使用して関数を呼び出します。
PyObject* myFunction = PyObject_GetAttrString(myModule, "myabs"); PyObject* args = PyTuple_Pack(1, PyFloat_FromDouble(2.0)); PyObject* myResult = PyObject_CallObject(myFunction, args);
最後に、次を使用して Python の戻り値を C の double に変換します。 PyFloat_AsDouble() 関数:
double result = PyFloat_AsDouble(myResult);
例外処理メカニズムを組み込むことで、プロセス全体にわたる潜在的なエラーを防止します。このアプローチは、C/C から Python 関数を呼び出し、その戻り値にアクセスするための包括的な方法を提供します。
以上がPython メソッドを呼び出し、その戻り値を C/C から取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。