Seite 1 von 1

[C-API] Eigene Methode aus Klasse aufrufe?

Verfasst: Mittwoch 24. November 2010, 20:19
von theliquidwave
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!

Re: [C-API] Eigene Methode aus Klasse aufrufe?

Verfasst: Donnerstag 25. November 2010, 00:12
von BlackJack
@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.

Re: [C-API] Eigene Methode aus Klasse aufrufe?

Verfasst: Donnerstag 25. November 2010, 15:42
von theliquidwave
: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!

Re: [C-API] Eigene Methode aus Klasse aufrufe?

Verfasst: Donnerstag 25. November 2010, 16:41
von BlackJack
Du suchst wahrscheinlich tp_as_mapping.

Re: [C-API] Eigene Methode aus Klasse aufrufe?

Verfasst: Donnerstag 25. November 2010, 17:47
von theliquidwave
Ja, wie unlogisch... :K
Danke!