首頁 > 後端開發 > Golang > 如何正確地將Python函數傳回值傳遞給Go?

如何正確地將Python函數傳回值傳遞給Go?

Barbara Streisand
發布: 2024-12-01 02:40:10
原創
993 人瀏覽過

How to Properly Pass Python Function Return Values to Go?

將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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板