go-python3 使用例子
时间: 2023-07-11 20:09:44 浏览: 65
`go-python3` 是一个 Go 语言的 Python 3 C API 绑定库,可以用来在 Go 代码中调用 Python 3 函数和模块。以下是一个简单的 `go-python3` 使用例子:
```go
package main
import (
"fmt"
"github.com/sbinet/go-python3"
)
func main() {
err := python3.Py_Initialize()
if err != nil {
panic(err.Error())
}
defer python3.Py_Finalize()
pyFunc := python3.PyImport_ImportModule("math")
if pyFunc == nil {
panic("Failed to load math module")
}
defer pyFunc.DecRef()
pyObj := pyFunc.GetAttrString("sqrt")
if pyObj == nil {
panic("Failed to get sqrt function")
}
defer pyObj.DecRef()
args := python3.PyTuple_New(1)
defer args.DecRef()
arg1 := python3.PyFloat_FromDouble(2.0)
defer arg1.DecRef()
python3.PyTuple_SetItem(args, 0, arg1)
result := pyObj.Call(args, python3.Py_None)
defer result.DecRef()
if result == nil {
panic("Failed to call sqrt function")
}
res := python3.PyFloat_AsDouble(result)
fmt.Printf("sqrt(2.0) = %v\n", res)
}
```
这个例子演示了如何在 Go 代码中调用 Python 的 `math.sqrt()` 函数。首先需要初始化 Python 解释器,然后加载 `math` 模块,获取其中的 `sqrt` 函数,创建函数参数,调用函数并获取结果。最后需要释放相关对象,包括参数、函数和结果等。