Ausführen einer Funktion über den Variablennamen in Python

7

Was ich tun muss, ist eine Schleife über eine große Anzahl von verschiedenen Dateien und (versuchen Sie es), Metadaten aus den Dateien zu holen.

Ich kann ein großes if ... elif machen ... und für jede Erweiterung testen, aber ich denke, es wäre viel einfacher, die Erweiterung in einer Variablen zu speichern, zu prüfen, ob eine Funktion mit diesem Namen existiert, und sie auszuführen .

Dies ist meine aktuelle Lösung, die einem anderen Stackover-Thread entnommen wurde:

%Vor%

Es gibt ein Problem damit: Wenn die zugrunde liegende Funktion einen AttributeError auslöst, wird dies als Fehler "Funktion nicht gefunden" registriert. Ich kann versuchen ... außer Blöcke für alle Funktionen, aber das wäre auch nicht besonders schön ...

Was ich suche, ist eher etwas wie:

%Vor%

Gibt es einen einfachen Weg, dies zu tun?

Danke: -)

    
Carpetsmoker 22.03.2011, 12:28
quelle

3 Antworten

22

Sie können:

%Vor%

Oder vielleicht besser:

%Vor%     
mouad 22.03.2011, 12:32
quelle
3

Die Funktion gettattr verfügt über ein optionales drittes Argument für einen Standardwert, der zurückgegeben wird, wenn das Attribut zurückgegeben wird existiert nicht, also könntest du das verwenden:

%Vor%     
Dave Webb 22.03.2011 12:31
quelle
0

Wie @mouad gesagt hat, kann callable(function) eine Funktion aufrufen.

Sie können damit eine Funktion aus einer Variablen heraus aufrufen, indem Sie Folgendes verwenden:

%Vor%

Dies ruft die Funktion auf, die als Argument angegeben ist.

Um dies innerhalb einer Variablen zu verwenden:

%Vor%     
EgMusic 24.10.2017 14:45
quelle

Tags und Links