goPy 是一个新的开源项目,实现了用 Go 语言来编写 CPython 扩展。
示例代码:
01 |
package simple |
02 |
03 |
import ( |
04 |
"fmt" |
05 |
"gopy" |
06 |
) |
07 |
08 |
func example(args *py.Tuple) (py.Object, error) { |
09 |
fmt.Printf("simple.example: %v\n", args) |
10 |
py.None.Incref() |
11 |
return py.None, nil |
12 |
} |
13 |
14 |
func init() { |
15 |
methods := []py.Method{ |
16 |
{"example", example, "example function"}, |
17 |
} |
18 |
19 |
_, err := py.InitModule("simple", methods) |
20 |
if err != nil { |
21 |
panic(err) |
22 |
} |
23 |
} |
编译方法:
1 |
> gopy pymodule.go |
使用方法:
1 |
import simple |
2 |
3 |
simple.example("hello", {123: True}) |
输出结果:
1 |
simple.example: [hello map[123:true]] |