[Python-de] Funktionscall per "String"

Gerhard Häring gh at ghaering.de
Son Okt 5 17:36:11 CEST 2003


Klaus-G. Meyer wrote:
> [...] 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. [...]

Das ist auch gut so [tm]. Unschöne und zu 99 % unnötige Hacks sollen 
nicht intuitiv sein, sonst hätten wir eine andere Programmiersprache :-D

Meistens, wenn jemand so was will, ist in Wirklichkeit ein simpler 
Verweis auf eine Funktion angebracht. Minimales Beispiel:

def f1(): print "f1"
def f2(): print "f2"

f = f1
f()
f = f2
f()

Der einzige Fall, wo ich mir momentan vorstellen könnte, dass es 
sinnvoll wäre, den Namen der zu verwendenden Funktion im String zu 
haben, ist wenn diese in einer Konfigurationsdatei festgelegt werden soll.

-- Gerhard