我之前遇到过这个问题,但直到现在它还没有太重要:通过给出3或4个变量的所有组合。我目前的项目是Python,所以这里有一个例子:
def function(var1, var2, var3):
if var1:
if var2:
if var3:
foo(bar)
else:
bar(foo)
else:
if var3:
...
即使这个例子比我使用的代码简单一点,因为每个变量有3到4种可能性。
我不熟悉许多编程概念,我觉得这个问题已经有了一个很好的答案。任何帮助表示赞赏。提前谢谢!
答案 0 :(得分:7)
许多if
s的规范Python替换是字典:
from functools import partial
def function(var1, var2, var3):
choices = {(True, True, True): partial(foo, bar),
(True, True, False): partial(bar, foo),
...}
choices[tuple(map(bool, (var1, var2, var3)))]()
(在这种情况下,您可以使用lambda
而不是functools.partial
)。
或者,在您的情况下:
choices = {("past", "simple", 1, False): ...,
...}
答案 1 :(得分:1)
def function(var1, var2, var3):
def foo():
pass
def bar():
pass
func = {('past', 'simple', 'first', 'plural'): foo,
('past', 'simple', 'first', 'singular'): bar,
('past', 'simple', 'second', 'plural'): foo,
('past', 'simple', 'secord', 'singular'): bar,
...
}[(var1, var2, var3)]
func()