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

use*_*864 15 c python class

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

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

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

谢谢.

msw*_*msw 22

Python的/ C API参考手册解释了它,尤其是定义新类型.

  • 谢谢,这就是我想要的,我不知道为什么"扩展Python"部分没有引用它. (2认同)

Ale*_*lli 8

这部分文档(以及周围的文档)应该为您提供所需的大部分信息.该xxsubtype.c源提供定义一个新的类(作为的子类一个例子模块list,精确地展示了如何做到这一点,太)和xxmodule.c显示(在许多其他事情)还如何定义一个新的类型.