「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > c/c ++からpython関数を呼び出して、戻り値メソッドを取得します

c/c ++からpython関数を呼び出して、戻り値メソッドを取得します

2025-04-18に投稿されました
ブラウズ:870

How to Extract a Python Function\'s Return Value When Called from C/C  ?

c/c

は、c/cからカスタムpython関数を呼び出すpython関数から抽出されますが、拡張機能を可能にしますが、リターン値を抽出することは挑戦する可能性があります。 Python C-APIを使用したソリューションは次のとおりです。 def myabs(x): return math.fabs(x)

the c/c code

インポートc/c(test.cpp):

import math

def myabs(x):
    return math.fabs(x)

関数への参照を取得します:

pyobject* myfunction = pyobject_getattrstring(&&引数:

#include 

int main() {
    Py_Initialize();
    PyRun_SimpleString("import sys; sys.path.append('.')");
pyobject* args = pytuple_pack(1、pyfloat_fromdouble(2.0)) args);

抽出されるreturn値

  1. をダブルに変換します:
#include 

int main() {
    Py_Initialize();
    PyRun_SimpleString("import sys; sys.path.append('.')");
double result = pyfloat_asdouble(myResult);抽出された返品値(result):
  1. printf( "Absolute value:%f \ n"、result);
#include 

int main() {
    Py_Initialize();
    PyRun_SimpleString("import sys; sys.path.append('.')");
これらの操作中のエラーを確認することを忘れないでください。 C-APIの詳細については、公式ドキュメントを参照してください。
    最新のチュートリアル もっと>

    免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

    Copyright© 2022 湘ICP备2022001581号-3