在Python中还有其他方法可以完成此任务吗?
这可能是一个愚蠢的问题,但我想知道是否可以使用字典或某种数组来完成这项任务?我试着使用这样的字典,它只调用所有函数 我的目标是在用户输入关键字时调用特定函数,但我希望避免使用那些冗长的if和else语句 以下是我尝试过的:在Python中还有其他方法可以完成此任务吗?,python,function,dictionary,hashmap,Python,Function,Dictionary,Hashmap,这可能是一个愚蠢的问题,但我想知道是否可以使用字典或某种数组来完成这项任务?我试着使用这样的字典,它只调用所有函数 我的目标是在用户输入关键字时调用特定函数,但我希望避免使用那些冗长的if和else语句 以下是我尝试过的: def Func1(): print ("This is func1") def Func2(): print ("This is func2") def Func3(): print ("This is func3") functions =
def Func1():
print ("This is func1")
def Func2():
print ("This is func2")
def Func3():
print ("This is func3")
functions = {"/func1" : Func1(), "/func2" : Func2(), "/func3" : Func3()}
制作包含函数对象但不实际调用它们的字典:
制作包含函数对象但不实际调用它们的字典:
更简单的方法是查找与用户给出的命令对应的函数
def Func1():
打印(“这是func1”)
def Func2():
打印(“这是func2”)
def Func3():
打印(“这是func3”)
函数={/func1:func1,/func2:func2,/func3:func3}
用户输入=输入(“输入命令>”)
函数[用户输入]()
还要确保从字典中存储的函数中删除括号,否则它们将在脚本运行时执行。更简单的方法是查找与用户给出的命令相对应的函数
def Func1():
打印(“这是func1”)
def Func2():
打印(“这是func2”)
def Func3():
打印(“这是func3”)
函数={/func1:func1,/func2:func2,/func3:func3}
用户输入=输入(“输入命令>”)
函数[用户输入]()
还要确保从字典中存储的函数中删除括号,否则它们将在脚本运行时执行。您可以保留函数对象,而不调用它们,但我必须创建这么多对象,对吗?有没有更有效的方法呢?你可以离开函数对象,而不调用它们,我必须创建这么多对象,对吗?有没有更有效的方法?
def func1():
print("I am function 1")
# etc for func2 and func3
functions = {
"func1": func1,
"func2": func2,
"func3": func3
}
answer = input("Which function do you want to call? ")
if answer in functions:
# find the correct function object and call it
functions[answer]()
else:
print("I can't find that function.")