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

2024-06-16 14:30:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个类“Bruch”,它从给定范围内的随机数中创建两个分数。在三个不同的函数中定义了三种不同类型的运算:加法(bruchplus)、减法(bruchminus)和乘法(bruchmulti)。你知道吗

“select(self)”函数随机调用其中一个。你知道吗

代码运行得很好,但我对select(self)中的“if”子句不满意。它既笨拙又丑陋。必须有一个更为python的方法来实现这一点。(我试图从一个列表中调用函数,但这将调用所有三个函数,即使我只返回例如list[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

Tags: 函数nameselfnumberifdefplusselect