[Python-de] Eine Klassen in Python/C instanzieren
Gerhard Haering
gh at ghaering.de
Fre Jul 8 11:12:36 CEST 2005
On Fri, Jul 08, 2005 at 10:27:48AM +0200, Julian Rath wrote:
> hallo, ich habe eine klasse mit der C/Python Api gschrieben, das lauft
> auch schon, so aber jetzt würde ich gerne diese in einer C Funktion
> instanzieren, mir then self Pointer holen und zurückgeben.
> Wie kann ich das machen?
Ich such mal ein Beispiel aus den pysqlite2-Sourcen raus:
if (factory == NULL) {
factory = (PyObject*)&CursorType;
}
cursor = PyObject_CallFunction(factory, "O", self);
CursorType ist das Typ-Objekt für eine "New-Style-Class" und ist einfach
wie jedes andere Python-Callable aufrufbar. Hier kriegt der Konstruktor
einen Parameter, in diesem Fall namens "self". Ein Aufruf ohne Parameter
würde einfach so aussehen:
... = PyObject_CallFunction(dein_typ_object, "");
... Aus irgendeinem Grund hab ich damals nicht CallObject genommen, ich
kann mich aber jetzt nicht daran erinnern ;-)
-- Gerhard
--
Gerhard Häring - gh at ghaering.de - Python, web & database development
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : nicht verfügbar
Dateityp : application/pgp-signature
Dateigröße : 189 bytes
Beschreibung: Digital signature
URL : http://starship.python.net/pipermail/python-de/attachments/20050708/7500247a/attachment.pgp