2010-06-07 113 views
9

我正在嘗試使用Python C API來定義一個模塊內的新類,該模塊可以將用C編寫的某些功能暴露給Python代碼。我特別想要以類的形式而不是一組模塊函數。如何使用C API在Python中定義新類型(類)?

但是,在官方文檔中,我找不到有關此特定任務的任何內容。我能找到的最接近的是PyClass_New函數(在Python.h頭文件中),但在官方文檔中沒有提及它,所以我認爲它不應該被使用。

那麼,從C代碼定義一個新的Python類的正確方法是什麼?

謝謝。

回答

8

This part文檔(和周邊的)應該給你你需要的大部分信息。 xxsubtype.c資源提供了一個示例模塊,它定義了一個新類(作爲list的子類,以便精確地顯示如何執行此操作),並且xxmodule.c顯示了(還有許多其他事情)以及如何定義新類型。

-3
static PyObject* Request_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 

可以幫助你,那麼你可以聲明PyTypeObject變量來定義一個新的類。

+0

請解釋你的答案! – Mazz 2017-04-21 09:49:58