tags:

views:

41

answers:

2

Hi,

I am trying to use the Python C API to define a new class inside a module that would expose certain functionality written in C to Python code. I specifically want to have it in the form of a class and not a set of module functions.

However, I can't find anything regarding this particular task in the official documentation. The closest I could find is PyClass_New function (in the Python.h header) but it is not mentioned anywhere in the official docs, so I assume it is not supposed to be used.

So, what is the proper way to define a new Python class from C code?

Thanks.

+3  A: 

The Python/C API Reference Manual explains it, in particular Defining New Types.

msw
Thank you, that's what I was looking for, I don't know why the "Extending Python" section has no references to that.
+2  A: 

This part of the docs (and surrounding ones) should give you most of the info you need. The xxsubtype.c sources provide one example module that defines a new class (as a subclass of list, to show precisely how to do that, too) and xxmodule.c shows (among many other things) also how to define a new type.

Alex Martelli