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