python 调用golang_python调用golang编写的动态链接库

楔子

我们都知道python的效率很低,但是好在可以和C语言无缝结合,C语言写好动态链接库之后再让python去调用简直不要太方便。但是使用C编写动态链接库也不是件容易的事情,于是笔者想到了go,go的效率虽然不如C,但是也没有逊色太多。而且go毕竟是一门高级语言,丰富的标准库、数据类型,编写动态链接库比C方便太多了。下面我们就来看看如何使用golang编写动态链接库交给python调用。

另外python和go之间进行交互,本质上是通过C语言来作为媒介的。在go中定义函数,参数和返回值需要是C中的类型,python调用时,参数和返回值也要指定为C中的类型。而这里只会介绍golang和C中的类型如何转换,至于python的类型和C的类型如何转换我只会直接拿来用,就不写注释介绍具体的用法了。因为python和C中的类型如何转换,比如如何在python中实现C中的数组、结构体等等,我在另一篇博客中https://www.cnblogs.com/traditional/p/12243307.html已经介绍的比较详细了,如果对python类型和C的类型之间的转化不是很清楚的小伙伴,可以先去看一看。

举个小栗子

package main

import "C"

//export age_incr_1

func age_incr_1(age int) int {

return age + 1

}

func main() {

//这个main函数我们不用,但是必须要写。

}

首先import "C",这一行必须要有,尽管我们目前还没有使

你可能感兴趣的:(python,调用golang)