2010-06-07 1 views
9

Ich versuche, die Python C-API zu verwenden, um eine neue Klasse innerhalb eines Moduls zu definieren, die bestimmte in C geschriebene Funktionen für Python-Code verfügbar machen würde. Ich möchte es speziell in Form einer Klasse und nicht einer Reihe von Modulfunktionen haben.Wie definiert man einen neuen Typ (Klasse) in Python mit C API?

Allerdings kann ich in der offiziellen Dokumentation zu dieser speziellen Aufgabe nichts finden. Der nächste, den ich finden konnte, ist PyClass_New function (im Python.h-Header), aber es wird nirgendwo in den offiziellen Dokumenten erwähnt, also nehme ich an, dass es nicht verwendet werden soll.

Also, was ist der richtige Weg, um eine neue Python-Klasse aus C-Code zu definieren?

Danke.

Antwort

8

This part der Dokumente (und der umliegenden) sollten Sie die meisten Informationen, die Sie benötigen. Die xxsubtype.c Quellen bieten ein Beispielmodul, das eine neue Klasse definiert (als Unterklasse von list, um genau zu zeigen, wie das auch geht) und xxmodule.c zeigt (neben vielen anderen Dingen) auch, wie man einen neuen Typ definiert.

-3
static PyObject* Request_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 

Ihnen helfen kann, dann können Sie PyTypeObject Variable deklarieren eine neue Klasse zu definieren.

+0

Bitte erläutern Sie Ihre Antwort! – Mazz

Verwandte Themen