我正在尝试使用Python C API在模块中定义一个新类,该类会将用C编写的某些功能暴露给Python代码。我特别希望以类的形式而不是一组模块函数。
但是,我在官方文档中找不到任何有关此特定任务的内容。我能找到的最接近的是PyClass_New函数(在Python.h标题中),但官方文档中没有提到它,所以我认为它不应该被使用。
那么,从C代码定义新Python类的正确方法是什么?
感谢。
答案 0 :(得分:22)
答案 1 :(得分:8)
This part文档(以及周围的文档)应该为您提供所需的大部分信息。 xxsubtype.c源提供了一个示例模块,用于定义新类(作为list
的子类,以精确显示如何执行此操作)和xxmodule.c显示(以及许多其他内容)还有如何定义新类型。
答案 2 :(得分:-3)
GET
可以帮助您,然后您可以声明 static PyObject* Request_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
变量来定义新类。