如何在不使用 if 语句的情况下随机调用三个函数之一?

How do I randomly call one of three functions without using an if statement?

我创建了一个 class "Bruch",它根据给定范围内的随机数创建两个分数。在三个不同的函数中定义了三种不同类型的运算,用于加法 (bruchplus)、减法 (bruchminus) 和乘法 (bruchmulti)。

"select(self)" 函数随机调用其中之一。

代码运行良好,但我对 select(self) 中的 "if" 子句不满意。它又笨又丑。必须有一种更 pythonic 的方式来实现这一点。 (我试图从列表中调用函数,但这将调用所有三个函数,即使我只是 return 例如列表 [0])。期待您的意见!

class Bruch:
    def __init__(self, name):
        self.name = 'BRUCHRECHNEN'
        print(self.name)
        print('')
        self.a = Fraction(rdm.randrange(1,10,2),rdm.randrange(2,10,2))
        self.b = Fraction(rdm.randrange(1,10,2),rdm.randrange(2,10,2))   

    #randomly selects + / - / x and calls the respective function      
    def select(self):
        number = rdm.randint(0,2)
        if number == 0:
            p = self.bruchplus()
        elif number == 1:
            p = self.bruchminus()
        else:
            p = self.bruchmulti()
        return p

也许你可以这样使用 random.choice()

fn = random.choice([self.bruchplus, self.bruchminus, self.bruchmulti])
p = fn()