2017-02-22 1 views
0

J'essaie d'appeler des fonctions à partir d'une entrée utilisateur, mais j'ai du mal à comprendre comment. Par exemple, si je cours le programme et entrez "3* foo", j'attends un retour de la sortie ("333333333333333333"), excepté que j'obtiens un TypeError: 'str' object is not callable; Des pensées?Python entrée variable fonction personnalisée appel

def func3(): 
print ("333333333333333333") 

command="3* foo" #command would be an input usually 
f=command.split() 
dic="1*":"func1", "2*":"func2", "3*":"func3"} 
function_caller=(dic[f[0]]) 
(function_caller)() 

erreur:

TypeError: 'str' object is not callable 

Répondre

0

Vous essayez d'appeler une chaîne, enlever les guillemets doubles de la valeur du dictionnaire, il devrait être:

dic = {"1*": func1, "2*": func2, "3*": func3}