甚至有可能吗?
到目前为止我所知道的:
Python不会切换大小写,但是它们有一个叫做字典映射的东西。
def fun1():print("fun1")
def fun2():print("fun2")
def fun3():print("fun3")
def WannaBeSwitch(arg):
switch = {
0: fun1,
1: fun2,
2: fun3
}
return switch.get(arg, "blabla")
if __name__ == "__main__":
argument = 1
call_func = WannaBeSwitch(argument)
call_func()
我不知道您所说的嵌套开关情况到底是什么意思,但是如果我理解正确,在辅助函数中使用字典映射就没有问题。我的意思是,使用您的示例作为演示,这样的事情是可能的:
def fun1_1():print("fun1_1")
def fun1_2():print("fun1_2")
def fun1_3():print("fun1_3")
def fun1(arg):
switch = {
0: fun1_1,
1: fun1_2,
2: fun1_3
}
return switch.get(arg, "blabla")
def fun2_1():print("fun2_1")
def fun2_2():print("fun2_2")
def fun2_3():print("fun2_3")
def fun2(arg):
switch = {
0: fun2_1,
1: fun2_2,
2: fun2_3
}
return switch.get(arg, "blabla")
def fun3_1():print("fun3_1")
def fun3_2():print("fun3_2")
def fun3_3():print("fun3_3")
def fun3(arg):
switch = {
0: fun3_1,
1: fun3_2,
2: fun3_3
}
return switch.get(arg, "blabla")
def WannaBeSwitch(arg):
switch = {
0: fun1,
1: fun2,
2: fun3
}
return switch.get(arg, "blabla")
if __name__ == "__main__":
argument1 = 1
argument2 = 1
call_func = WannaBeSwitch(argument1)(argument2)
call_func()
尽管如此,它看起来不是很可读...也许如果您确切地编写了您想使用它的内容以及如何使用它,我可以为您提供更多有用的答案。