相关疑难解决方法(0)

从Go调用Python函数并获取函数返回值

我正在写一个Go程序.从这个Go程序,我想调用另一个文件中定义的Python函数并接收函数的返回值,这样我就可以在Go程序的后续处理中使用它.我在Go程序中收到任何返回的数据时遇到问题.下面是我认为可行的最小例子,但显然不是:

gofile.go

package main

import "os/exec"
import "fmt"

func main() {
     fmt.Println("here we go...")
     program := "python"
     arg0 := "-c"
     arg1 := fmt.Sprintf("'import pythonfile; print pythonfile.cat_strings(\"%s\", \"%s\")'", "foo", "bar")
     cmd := exec.Command(program, arg0, arg1)
     fmt.Println("command args:", cmd.Args)
     out, err := cmd.CombinedOutput()
     if err != nil {
         fmt.Println("Concatenation failed with error:", err.Error())
     return
     }
     fmt.Println("concatentation length: ", len(out))
     fmt.Println("concatenation: ", string(out))
     fmt.Println("...done")
}
Run Code Online (Sandbox Code Playgroud)

pythonfile.py

def cat_strings(a, b):
    return a + b
Run Code Online (Sandbox Code Playgroud)

如果我打电话给go run gofile我得到以下输出:

here we go... …
Run Code Online (Sandbox Code Playgroud)

python go

12
推荐指数
1
解决办法
1万
查看次数

混合Python和Go

我一直在使用Python的库,我想做一些性能改进.

是否可以在Python中编写一些代码,在Go中编写一些代码,并在它们之间传递数据?如果有可能,有没有关于如何做到这一点的例子?

像这样:

# Python
def python_foo():
    data = {'foo': 'val', 'bar': [1, 2, 3]}
    go_process(json.dumps(data))


def python_got_data_from_go(data):
    # deal with data from Go


# Go
func go_process(json string) {
    // do some processing
    python_got_data_from_go(someData)
}
Run Code Online (Sandbox Code Playgroud)

python go

9
推荐指数
1
解决办法
4233
查看次数

Go和Cython之间的差异

今天我的一位好朋友问我最新的Go语言和Cython之间的主要区别是什么,Cython是一组Python的C扩展.我对Python知之甚少,谁能告诉我为什么Go比Cython更好/更差?

python go cython

6
推荐指数
2
解决办法
4953
查看次数

标签 统计

go ×3

python ×3

cython ×1