我创建了一个班级"布鲁赫"从给定范围内的随机数创建两个分数。在三个不同的函数中定义了三种不同类型的操作,用于加法(bruchplus),减法(bruchminus)和乘法(bruchmulti)。
"选择(自我)"函数随机调用其中一个。
代码完全正常,但我不满意"如果" select(self)中的子句。它笨拙而丑陋。必须有更多的pythonic方式来实现这一目标。 (我试图从列表中调用函数,但是这将调用所有三个函数,即使我只返回例如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
答案 0 :(得分:4)
也许您可以像这样使用random.choice()
:
fn = random.choice([self.bruchplus, self.bruchminus, self.bruchmulti])
p = fn()