[Python-de] Funktionscall per "String"
Klaus-G. Meyer
km-news3 at onlinehome.de
Son Okt 5 16:50:18 CEST 2003
Hallo,
ich Antworte mal hier, ein Danke geht natürlich an alle Antworter.
> Wenn 'test' in einem Modul oder einer Klasse 'foo' definiert ist und
> a='test':
> getattr(foo, a)()
OK, getattr hatte ich in der Doku gefunden. Vermutlich werde ich es auch
mit einer Klasse und dann mit getattr machen.
Aber mir war nicht klar, wie ich das bei einfache Funktionen, deren Namen
im String steht, machen konnte.
Insgesamt überrascht es mich etwas, dass das in Python so "unintuitiv"
geht. Alle Lösungen sehen für mich jedenfalls mehr oder weniger unschön
aus.
Bei meiner Suche in der Doku habe ich nach etwas ähnlichem wie zB int()
oder str() gesucht, ich habe also eine Funktion gesucht, die mir aus dem
String ein fct-object macht.
Im Grunde macht der globals-Vorschlag das auch, aber es sticht nicht
gerade ins Auge...
(Könnte man natürlich noch in eine kleine hübsche Funktion verpacken :-)
--
Mit freundlichen Grüßen
Klaus Meyer :-)