我试图玩弄运算符重载,我发现自己尝试了2个以上的参数。我如何实现它来接受任意数量的参数。
class Dividend:
def __init__(self, amount):
self.amount = amount
def __add__(self, other_investment):
return self.amount + other_investment.amount
investmentA = Dividend(150)
investmentB = Dividend(50)
investmentC = Dividend(25)
print(investmentA + investmentB) #200
print(investmentA + investmentB + investmentC) #error
答案 0 :(得分:3)
问题不在于您的__add__
方法不接受多个参数,问题是它不会返回Dividend
。加法运算符始终是二元运算符,但在第一次加法后,您最终尝试将数字类型添加到Dividend
而不是添加两个红利。您应该让__add__
方法返回适当的类型,例如:
def __add__(self, other_investment):
return Dividend(self.amount + other_investment.amount)