2017-02-22 15 views
0

Я пытаюсь вызвать функции с пользовательского ввода, но я изо всех сил пытаюсь понять, как это сделать. Например, если я запустил программу и введите "3* foo", я ожидаю возврат вывода ("333333333333333333"), за исключением того, что я получаю TypeError: 'str' object is not callable; Есть предположения?python variable input custom function call

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)() 

ошибка:

TypeError: 'str' object is not callable 

ответ

0

Вы пытаетесь вызвать строку, удалить двойные кавычки из значения словаря, оно должно быть:

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