如何打乱Python函数中if语句的顺序?

Mic*_*ens 6 python python-3.x

我有一个Python 函数,它有一系列if语句。

def some_func():
    if condition_1:
        return result_1
    if condition_2:
        return result_2
    ... #other if statements
Run Code Online (Sandbox Code Playgroud)

但我希望每次调用函数时这些 if 语句的顺序都会改变。就像我调用该函数一样,可能存在一种情况,当condition_1condition_2两者都为真时,但由于condition_1首先检查,因此我会得到result_1,但我希望当我第二次调用该函数时,检查一些其他随机条件。(因为我在函数中只有五个 if 语句,因此是五个条件之一)。
那么有什么方法可以做到这一点,比如将条件存储在列表中或其他东西中。
任何帮助将不胜感激。

I'm*_*hdi 5

您可以创建列表conditionresult然后shuffle如下所示:

import random
def some_func(x):
    lst_condition_result = [((x>1), True), ((x>2), False)]
    random.shuffle(lst_condition_result)
    
    for condition, result in lst_condition_result:
        if condition:
            return result
Run Code Online (Sandbox Code Playgroud)

输出:

>>> some_func(20)
True

>>> some_func(20)
False

>>> some_func(20)
False
Run Code Online (Sandbox Code Playgroud)