[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 :-)