將Python 函數傳回值傳遞給Go
本文解決了從Go 程式中呼叫Python 函數並存取其傳回值的問題值。遇到的場景涉及調用外部文件中定義的 Python 函數並檢索其返回資料以在 Go 中進一步處理。
在提供的範例中,Go 程式嘗試使用 exec.Command 執行 Python 命令,但無法收到任何回傳資料。最初的理論是返回值被列印出來,而不是由 Python 函數傳回。然而,這被駁回了,因為它違反了該函數是更大的 Python 實用程式模組的一部分的假設。
進一步調查,發現問題在於 Python 指令的構造。透過刪除指令本身周圍的引號,可以獲得以下工作程式碼:
Go 程式碼:
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中文網其他相關文章!