Python - Ruft eine Funktion in einem Modul dynamisch auf

8

Ich bin ziemlich neu in Python und ich habe eine Situation, in der ich eine Variable habe, die eine Funktion innerhalb eines Moduls repräsentiert, und ich frage mich, wie ich sie dynamisch nennen soll. Ich habe filters.py :

%Vor%

Und dann in einem anderen Skript habe ich etwas wie:

%Vor%

... aber das funktioniert offensichtlich nicht. Wenn jemand mich auf die richtige Art und Weise ausfüllen könnte, um dies zu tun, oder lassen Sie mich wissen, wenn es eine bessere Möglichkeit gibt, Funktionen als Parameter zu übergeben, die großartig wären.

    
Chris Forrette 06.07.2010, 22:06
quelle

3 Antworten

10

Um das Problem zu vermeiden, könnten Sie die Funktion direkt übergeben, anstatt "nach Namen":

%Vor%

Wenn Sie stattdessen einen String verwenden möchten, können Sie getattr wie von SilentGhost empfohlen verwenden.

    
sth 06.07.2010, 22:13
quelle
11

Sie benötigen eine integrierte getattr :

%Vor%     
SilentGhost 06.07.2010 22:08
quelle
0
%Vor%

Dies kann dann wie folgt aufgerufen werden:

%Vor%

Beachten Sie, dass es keine gute Idee ist, eine Standardfunktion arg zu haben - es ist nicht intuitiv ersichtlich, warum filters.scale der Standard von mehreren möglichen Bildverarbeitungsoperationen ist.

    
John Machin 06.07.2010 22:24
quelle

Tags und Links