[C-API] Eigene Methode aus Klasse aufrufe?

Python in C/C++ embedden, C-Module, ctypes, Cython, SWIG, SIP etc sind hier richtig.
Antworten
theliquidwave
User
Beiträge: 221
Registriert: Sonntag 1. Juni 2008, 09:08

Mittwoch 24. November 2010, 20:19

Hallo.
Wie kann ich eine Methode aus einer Klasse aufrufen, die ich selbst definiert habe?
Beispielsweise die Klasse "Vector" die ich definiere. Wie kann ich nun aus C heraus z.B. die Methode "Normalize" aufrufen?

Edit: Wie kann ich eigentlichen prüfen, ob ein PyObject* überhaupt einen von mir definierten Typen hat? PyObject_IsInstance nimmt ja 2x PyObject*, aber der Typ an sich ist doch eigentlich PyTypeObject*?!

Gruß und Danke!
Grüßle.
BlackJack

Donnerstag 25. November 2010, 00:12

@Chrisber: Das sollte eigentlich äquivalent zu Python gehen -- Du fragst von Deinem Objekt das Attribut `Normalize` ab und bekommst ein aufrufbares Objekt, welches Du dann aufrufen kannst.
theliquidwave
User
Beiträge: 221
Registriert: Sonntag 1. Juni 2008, 09:08

Donnerstag 25. November 2010, 15:42

:D
Da bin ich gar nicht draufgekommen :lol:

Edit: Gibt es auch in der C-API ein __getitem__ zu definieren? Ich finde nur tp_getattr und tp_getattro, aber nicht tp_getitem :/

Danke!
Grüßle.
theliquidwave
User
Beiträge: 221
Registriert: Sonntag 1. Juni 2008, 09:08

Donnerstag 25. November 2010, 17:47

Ja, wie unlogisch... :K
Danke!
Grüßle.
Antworten