如何使用C API在Python中定义新类型(类)?
我正在尝试使用Python的C接口,在一个模块里定义一个新类,这样就可以把用C写的一些功能暴露给Python代码。我特别想要的是以类的形式,而不是一组模块函数。
不过,我在官方文档中找不到关于这个特定任务的任何信息。我找到的最接近的就是Python.h头文件里的PyClass_New函数,但在官方文档里没有提到这个函数,所以我猜它可能不应该被使用。
那么,从C代码定义一个新的Python类的正确方法是什么呢?
谢谢。
2 个回答
-4
static PyObject* Request_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
这可能对你有帮助,你可以声明一个 PyTypeObject
变量来定义一个新类。
10
这部分文档(以及周围的内容)应该能给你提供大部分需要的信息。点击这里可以查看相关内容。xxsubtype.c这个文件提供了一个示例模块,它定义了一个新的类(这个类是list
的子类,目的是展示如何做到这一点),而xxmodule.c则展示了(除了很多其他内容)如何定义一个新的类型。