ホームページ >バックエンド開発 >Golang >Python 関数の戻り値を Go に適切に渡すにはどうすればよいですか?

Python 関数の戻り値を Go に適切に渡すにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-01 02:40:10991ブラウズ

How to Properly Pass Python Function Return Values to Go?

Python 関数の戻り値を Go に渡す

この記事では、Go プログラム内から Python 関数を呼び出し、その戻り値にアクセスする問題について説明します。価値。このシナリオでは、外部ファイルで定義された Python 関数を呼び出し、Go でさらに処理するためにその戻りデータを取得することが含まれます。

この例では、Go プログラムは exec.Command を使用して Python コマンドを実行しようとしていますが、戻りデータの受信に失敗します。最初の理論では、戻り値は Python 関数によって返されるのではなく出力されるということです。しかし、これは、関数がより大きな Python ユーティリティ モジュールの一部であるという仮定に違反するため無視されます。

さらに調査すると、問題は Python コマンドの構築にあることがわかりました。コマンド自体を囲んでいる引用符を削除すると、次の作業コードが得られます:

Go Code:

package main

import (
    "fmt"
    "os/exec"
)

func main() {
    cmd := exec.Command("python", "-c", "import pythonfile; print pythonfile.cat_strings('foo', 'bar')")
    fmt.Println(cmd.Args)
    out, err := cmd.CombinedOutput()
    if err != nil { fmt.Println(err); }
    fmt.Println(string(out))
}

重要な変更は、Python コマンドの周囲の引用符を削除したことです。これにより、正しいコマンドが実行され、戻り値がキャプチャされるようになります。

以上がPython 関数の戻り値を Go に適切に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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