2010-06-07 115 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