我有几个功能,例如:
def func1():
print 'func1'
def func2():
print 'func2'
def func3():
print 'func3'
然后我要求用户输入他们想使用choice = raw_input()
运行的函数,并尝试使用choice()
调用他们选择的函数。如果用户输入func1而不是调用该函数,则会给我一个错误,显示为'str' object is not callable
。对我来说,他们是不是要把“选择”变成一个可调用的值?
Tags:
您可以使用
locals
如果您制作了一个更复杂的程序,那么使用Python标准库中的cmd模块可能比编写一些东西要简单得多。
你的例子看起来是这样的:
一个例子是:
使用此模块时,当用户输入不带
do_
的名称时,将调用名为do_*
的每个函数。此外,将自动生成帮助,您可以向函数传递参数。有关这方面的更多信息,请查看Python手册(here)或Python 3版本的手册(例如,here)。
错误是因为函数名不是字符串,不能像
'func1'()
那样调用函数,应该是func1()
你可以这样做:
它将字符串映射到函数引用
旁注:您可以编写如下默认函数:
改进你的代码,比如:
相关问题 更多 >
编程相关推荐