Was ist der beste Weg, um eine Funktion aufzurufen, wenn man eine Zeichenkette mit dem Namen der Funktion in einem Python-Programm hat. Nehmen wir zum Beispiel an, dass ich ein Modul habe foo
und ich habe eine Zeichenkette mit folgendem Inhalt "bar"
. Wie kann ich am besten anrufen? foo.bar()
?
Ich muss den Rückgabewert der Funktion erhalten, weshalb ich nicht einfach eval
. Ich habe herausgefunden, wie man das macht, indem man eval
um eine temporäre Funktion zu definieren, die das Ergebnis dieses Funktionsaufrufs zurückgibt, aber ich hoffe, dass es einen eleganteren Weg gibt, dies zu tun.
8 Stimmen
Die Verwendung von eval würde wahrscheinlich einige Sicherheitsbedenken aufwerfen!
23 Stimmen
Zu Ihrer Information: Das Sprachmerkmal des Zugriffs auf Felder, Klassen und Methoden durch dynamische Namen heißt Reflexion . Das könnte die künftige Suche erleichtern.