fh_study
Erfahrenes Mitglied
Hallo zusammen,
vorweg gesagt: ich arbeite gerade mit Python, aber da das doch Java recht ähnlich ist, hab ich mal meine Frage hier rein gestellt.
Problem:
Angenommen man hat die Klassen a, b und c und in jeder dieser Klassen eine Funktion die in allen drei Klassen gleich heißt, z.B. func_xy()
Nun will ich dynamisch auf diese Funktion zugreifen, mal auf die in Klasse a mal auf die in Klasse b usw. Dafür benutze ich eine weitere Funktion einer anderen Klasse. Diese wird durch klicken auf einen Button aufgerufen und erhält als übergabewert aus einer ComboBox den String a, b oder c für die Klassen a, b und c
Wenn ich jetzt also den Namen der Klasse in meiner Funktion als String in z.B. der Variable name habe, wie kann ich dann die Funktion in der Klasse aufrufen?
Normalerweise würde man ja sagen: a.func_xy() -> genau dieses a. will ich aber vermeiden und dafür soll indirekt name eingesetzt werden, dachte eigentlich es funktioniert mit __name__.func_xy() aber anscheinend nicht.
Hoffe ihr konntet mir folgen und evtl weiterhelfen
PS: switch oder ähnliches kann ich nicht verwenden, da die Klassen erweiterbar sein sollen und man nicht für jede neue Klasse diese Funktion ändern soll
vorweg gesagt: ich arbeite gerade mit Python, aber da das doch Java recht ähnlich ist, hab ich mal meine Frage hier rein gestellt.
Problem:
Angenommen man hat die Klassen a, b und c und in jeder dieser Klassen eine Funktion die in allen drei Klassen gleich heißt, z.B. func_xy()
Nun will ich dynamisch auf diese Funktion zugreifen, mal auf die in Klasse a mal auf die in Klasse b usw. Dafür benutze ich eine weitere Funktion einer anderen Klasse. Diese wird durch klicken auf einen Button aufgerufen und erhält als übergabewert aus einer ComboBox den String a, b oder c für die Klassen a, b und c
Wenn ich jetzt also den Namen der Klasse in meiner Funktion als String in z.B. der Variable name habe, wie kann ich dann die Funktion in der Klasse aufrufen?
Normalerweise würde man ja sagen: a.func_xy() -> genau dieses a. will ich aber vermeiden und dafür soll indirekt name eingesetzt werden, dachte eigentlich es funktioniert mit __name__.func_xy() aber anscheinend nicht.
Hoffe ihr konntet mir folgen und evtl weiterhelfen
PS: switch oder ähnliches kann ich nicht verwenden, da die Klassen erweiterbar sein sollen und man nicht für jede neue Klasse diese Funktion ändern soll
Zuletzt bearbeitet: