Go 語言編寫 CPython 擴展:goPy
goPy 是一個新的開源項目,實現了用 Go 語言來編寫 CPython 擴展。
CPython是用C語言實現的Python解釋器,也是官方的并且是最廣泛使用的Python解釋器。除了CPython以外,還有用JAVA實現的Jython和用.NET實現的IronPython,使Python方便地和JAVA程序、.NET程序集成。另外還有一些實驗性的Python解釋器比如PyPy。
CPython是使用字節碼的解釋器,任何程序源代碼在執行之前先要編譯成字節碼。它還有和幾種其它語言(包括C語言)交互的外部函數接口。
示例代碼:
package simple import ( "fmt" "gopy" ) func example(args *py.Tuple) (py.Object, error) { fmt.Printf("simple.example: %v\n", args) py.None.Incref() return py.None, nil } func init() { methods := []py.Method{ {"example", example, "example function"}, } _, err := py.InitModule("simple", methods) if err != nil { panic(err) } }編譯方法:
> gopy pymodule.go使用方法:
import simple simple.example("hello", {123: True})輸出結果:
simple.example: [hello map[123:true]]
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!