混合Python和Go

Jon*_*nes 9 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)

Bal*_*Fan 5

你需要在它们之间粘合,例如C编程语言或通过网络进行通信.如果你将https://docs.python.org/2/extending/extending.html与http://golang.org/cmd/cgo/和良好的编程技巧相结合,那么最痛苦的解决方案C.

您可以在python http://pymotw.com/2/socket/tcp.html中创建服务器,然后转到https://coderwall.com/p/wohavg并在它们之间进行通信.

编辑: 请参阅在Go(Golang)中编写Python扩展并从Go调用Python函数并获取函数返回值