在Python中还有其他方法可以完成此任务吗?

在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 =

这可能是一个愚蠢的问题,但我想知道是否可以使用字典或某种数组来完成这项任务?我试着使用这样的字典,它只调用所有函数

我的目标是在用户输入关键字时调用特定函数,但我希望避免使用那些冗长的if和else语句

以下是我尝试过的:

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.")