[Python-de] Funktionscall per "String"

Klaus-G. Meyer km-news3 at onlinehome.de
Son Okt 5 19:02:51 CEST 2003


Hallo Gerhard,

> Das ist auch gut so [tm].

das ist eine der bewährten Ausreden ;-)

Die anderen beliebten sind:

Das haben wir schon immer so/anders gemacht!

Das können wir aus Komatibilität nicht ändern!

> 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

Naja, ein anderes nettes Beispiel:
Man bekommt von außen Befehle (zB String-Befehle über eine Schnittstelle), 
auf die man reagieren/antworten soll.

Was wäre simpler und einfacher, die Funktion, in der die Reaktion erfolgt, 
so zu nennen wie den Befehl, und dann direkt über den Befehlsstring die 
richtige Funktion aufzurufen?

if fct(string):
	fct(string)()
else:
	print "unbekannter Befehl"

Das wäre schon alles (für eine simple Version, ohne weitere 
Fehlerbehandlung und weitere Randbedingungen).

Ich finde das kurz und verständlich.


-- 
Mit freundlichen Grüßen
Klaus Meyer :-)