如何有效地完成所有可能性?

0 python if-statement

我之前遇到过这个问题,但直到现在它还不是很重要:通过给出3或4个变量的所有组合.我目前的项目是Python,所以这是一个例子:

def function(var1, var2, var3):
    if var1:
        if var2:
            if var3:
                foo(bar)
            else:
                bar(foo)
        else:
            if var3:
                ...
Run Code Online (Sandbox Code Playgroud)

即使这个例子比我正在使用的代码更简单,因为每个变量有3到4种可能性.

我不熟悉许多编程概念,我觉得这个问题已经有了很好的答案.任何帮助表示赞赏.提前致谢!

jon*_*rpe 7

许多ifs 的规范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)))]()
Run Code Online (Sandbox Code Playgroud)

(在这种简单的情况下你可以使用lambda而不是functools.partial).

或者,在您的情况下:

choices = {("past", "simple", 1, False): ..., 
           ...}
Run Code Online (Sandbox Code Playgroud)