我知道python中没有开关大小写,并且可以使用字典代替。但是如果我想将参数传递给函数zero()但是没有参数传递给one()呢?我没有发现任何与此有关的问题。允许可选参数的Python开关大小写
def zero(number):
return number == "zero"
def one():
return "one"
def numbers_to_functions_to_strings(argument):
switcher = {
0: zero,
1: one,
2: lambda: "two",
}
# Get the function from switcher dictionary
func = switcher.get(argument, lambda: "nothing")
# Execute the function
return func()
什么是实现这个最简单的方法,而不必将它们分为两种情况?我认为func()需要采用(可选)参数?
你在'zero'中传递了哪个参数? – AKS
'lambda'或'functools.partial'可以工作。重构,使地图中的所有函数至少*接受*相同的参数,即使它们不全部使用它们。 – jonrsharpe