hallo,
in C ist es ja möglich sich eine Struktur mit Funktionszeigern zusammen zu stellen. Also so in der Art
struct {
int *(__cdecl *pFunktion1)(void);
....
}TEST;
und später die Funktion über das Strukur-Objekt aufzurufen
TEST.pFunktion1 = Funktion1;
....
TEST.pFunktion1();
Ist sowas auch in Python möglich?
also ich kenne das ctypes-Modul und mit Hilfe von "_field_" kann man sich eine Struktur zusammenstellen...Aber von welchem Typ muss ich da dann so einen "Funktionszeiger" definieren?
Struct mit Funktionszeigern
Du suchst also das Python-Äquivalent für Dein C-Beispiel? Das wäre eine Möglichkeit mit einem Dictionary:MfG
HWK
Code: Alles auswählen
def f1():
print 1
def f2():
print 2
def f3():
print 3
func_struct = {'func1': f1, 'func2': f2, 'func3': f3}
func_struct['func2']()
HWK
Oder eine Klasse?
Stefan
Code: Alles auswählen
class C:
def m1(): return 1
def m2(): return 2
c = C()
print c.m1()
@makro: Oder suchst Du vielleicht ``ctypes.CFUNCTYPE(ctypes.POINTER(ctypes.c_int))``!?
hallo,
erstmal danke für eure antworten!
also die ersten beiden haben mir schon geholfen!
@BlackJack:
genau, das war eigentlich das was ich gesucht hab ...habs auch schon ausprobiert...funktioniert ebenfalls!
muss mich jetzt nur noch entscheiden, wie ich´s machen will
erstmal danke für eure antworten!
also die ersten beiden haben mir schon geholfen!
@BlackJack:
genau, das war eigentlich das was ich gesucht hab ...habs auch schon ausprobiert...funktioniert ebenfalls!
muss mich jetzt nur noch entscheiden, wie ich´s machen will
Was meinst du da mit entscheiden? Das sind zwei völlig verschiedene Sachen, ctypes ist dafür da um auf C-Bibliotheken zuzugreifen. Wenn du nur Funktionszeiger in Python brauchst, dann ist ctypes da das denkbar schlechteste was du nehmen kannst, denn jede Referenz auf eine Funktion ist automatisch ein Funktionszeiger. Vergiss am besten erstmal, dass es ctypes gibt.makro hat geschrieben:muss mich jetzt nur noch entscheiden, wie ich´s machen will