如何使用C API在Python中定义新类型(类)?

时间:2010-06-07 14:46:35

标签: python c class

我正在尝试使用Python C API在模块中定义一个新类,该类会将用C编写的某些功能暴露给Python代码。我特别希望以类的形式而不是一组模块函数。

但是,我在官方文档中找不到任何有关此特定任务的内容。我能找到的最接近的是PyClass_New函数(在Python.h标题中),但官方文档中没有提到它,所以我认为它不应该被使用。

那么,从C代码定义新Python类的正确方法是什么?

感谢。

3 个答案:

答案 0 :(得分:22)

答案 1 :(得分:8)

This part文档(以及周围的文档)应该为您提供所需的大部分信息。 xxsubtype.c源提供了一个示例模块,用于定义新类(作为list的子类,以精确显示如何执行此操作)和xxmodule.c显示(以及许多其他内容)还有如何定义新类型。

答案 2 :(得分:-3)

GET

可以帮助您,然后您可以声明 static PyObject* Request_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 变量来定义新类。