擅长:python、mysql、java
<p>我在测试代码时没有遇到这个问题,所以我认为没有什么问题,但你是对的。
事实证明,您只需要添加以下代码:</p>
<pre><code>def __radd__(self,other):
if isinstance(other, int):
other = Breuk(other, 1)
elif type(self) == int:
self.teller = self
self.noemer = 1
r = Breuk()
r.teller = self.noemer*other.teller + self.teller*other.noemer
r.noemer = self.noemer*other.noemer
while math.gcd(r.teller, r.noemer) != 1:
factor = int(math.gcd(r.teller, r.noemer))
r.teller = int(r.teller / factor)
r.noemer = int(r.noemer / factor)
return r
</code></pre>
<p>调用5。<strong>add</strong>(Beurk(5,3))将失败,然后调用Beurk(5,3)。<strong>radd</strong>(5)将正常工作</p>