为了账号安全,请及时绑定邮箱和手机立即绑定

求解代码意思

哪位大神求解一下这段代码的 意思?谢谢
def __add__(self, r):
        return Rational(self.p * r.q + self.q * r.p, self.q * r.q)


正在回答

1 回答

r1 = Rational(1, 3)
r2 = Rational(1, 2)
r1+r2就是使用__add__方法,即__add__(r1,r2)来实现:带入__add__(self,r)方法中
__add__(r1,r2)的返回值是 Rational( r1.p*r2.q(1*3)+r1.q*r2.p(3*1) , r1.q*r2.q(3*2))=Rational(5,6)
而Rational类最后是调用下面方法输出结果,即
def __str__(self):
        return '%s/%s' % (self.p, self.q)
最后输出结果为5/6
也可以最初将r1、r2的值分别带入Rational类输出,那么
r1 = Rational(1, 3)=1/3
r2 = Rational(1, 2)=1/2
那么你算一下r1+r2=5/6即验证了上面的__add__方法,__add__方法其实是分数乘法通分的过程。
我也是初学,自己是这样理解的,如果有什么第一理解有误,还能与希望楼主留贴沟通,加油~
2 回复 有任何疑惑可以回复我~
#1

1小马哥1

__add__(self,r) 方法只有一个属性呀,__add__(r1,r2)是2个参数呀
2018-09-28 回复 有任何疑惑可以回复我~
#2

925755208 回复 1小马哥1

兄弟你理解错误了,__add__(self,s)是表示用实例本身和传入的第二个实例,其两者都是实例。
2018-10-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

求解代码意思

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信