Seite 1 von 1

Funktionen dynamisch aufrufen

Verfasst: Sonntag 28. Mai 2006, 14:29
von bot
Hi

Ich möchte eine Funktion anhand eines dict aufrufen. Leider geht die letzte Zeile nicht :( wie sag ich ihm, das es sich um eine funktion handelt und nicht um einen string?

Code: Alles auswählen

functionsDict = {
                'a'     : 'myA',
                'b'     : 'myB',
                'c'     : 'myC'
            }
          
def myA():
  print "a"
  
def myB():
  print "b"

def myC():
  print "c"
                
wert = "b"

func = functionsDict[wert]

print "Funktionsname: " + func

func()

Verfasst: Sonntag 28. Mai 2006, 15:36
von helmut
Zum Beispiel so:

Code: Alles auswählen

def myFuncA():
    print 'hier ist myFuncA()'

fdict = {'f1':myFuncA}
fdict['f1']()
#Ausgabe: hier ist myFuncA()
Gruss, Helmut

Verfasst: Sonntag 28. Mai 2006, 15:58
von bot
wow, super danke :)
hat geklappt

Verfasst: Montag 29. Mai 2006, 06:52
von jens
Nur der vollständigkeitshalber... Wenn man den Funktionsnahmen als String vorliegen hat, kann man mit getattr() an die Funktion kommen...

Verfasst: Montag 29. Mai 2006, 16:52
von Leonidas
jens hat geschrieben:Wenn man den Funktionsnahmen als String vorliegen hat, kann man mit getattr() an die Funktion kommen...
Ist aber eher unschön, wenn man die Callables direkt im Dict angeben kann.