首页 > 后端开发 > 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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板