2010-11-18 3 views
0

J'ai une variable de chaîne qui vient avec différents noms de fonctions, et j'ai un fichier qui contient un ensemble de fonctions souvent différentes qui correspond au contenu de la chaîne, comment appeler cette fonction en Python?J'ai une variable de chaîne qui vient avec des noms de fonctions, comment appeler la fonction en Python?

Exemple:

Dans Fichier 1

def function1: ... 
def function2: ... 
def function3: ... 

Dans Fichier 2

functionname = "function2" 

Je dois appeler la fonction2 du Fichier1 de ce fichier

+2

double possible de [Appel d'une fonction d'une chaîne avec le nom de la fonction en Python] (http://stackoverflow.com/questions/3061/calling-a-function-from- [-eval() 'est EVIL!] (http://diveintopython3.org/advanced-iterators.html#eval) –

Répondre

1

eval("function2")()

getattr(<module>, fname)()

+0

ainsi que. 'myvar =" myowntmpdir "; rm -rf ~/$ myvra'. Ou REPL de python ... –

+0

@Tim Shell est diabolique (un-string-avec-les-fonctions-nom-en-python) – khachik

6
myfunction = getattr(mymodule, functionname) 
myfunction() 
0
name = 'function2' 

assert re.match('^(?i)[_a-z][_a-z0-9]*$', name) 

eval(name)() 
Questions connexes