还是不明白这个r是什么意思,为什么return里self.p要乘r.q
程序里的 self.p * r.q用来计算通分后分数的分子。
这里把有理数用分数表示,有理数的运算也就成了分数的运算,如计算:1/3 + 1/5,
先进行通分变成:5/15 + 3/15,这个5/15的分子就是程序里的 self.p * r.q
哦哦之前也一直没明白,谢谢解答
r1=(1,2),r2=(2,3),r1其实是二分之一,r2其实是三分之二。r1+r2,计算的结果其实是(1*3+2*2)/(2*3).self.p=1,self.q=2,r是r2的参数,r.p=2,r.q=3.你手动算算两个分数相加,怎么做,当然是先把分母同分,分母找最大公约数最简单的方法就是两个分母相乘。建议你看看源码中的truediv就能大概理解了