Go 語言編寫 CPython 擴展:goPy

jopen 11年前發布 | 14K 次閱讀 CPython Google Go/Golang開發

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]]

項目主頁:http://www.baiduhome.net/lib/view/home/1365407188937

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!