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

Rational(self.p * r.q + self.q * r.p, self.q * r.q)

Rational(self.p * r.q + self.q * r.p, self.q * r.q)   为什么要这么写。后面的 self.q * r.q是什么意思

正在回答

3 回答

  1. Rational指的是对有理数的处理

  2. p是分子,q是分母,一个有理数 x(p,q)

  3. self是第一个参数,r是第二个参数,现在两个有理数相加,比如1/2 + 3/5 ,是不是就等于1*5/2*5 + 3*2/5*2

  4. Rational(self.p * r.q + self.q * r.p, self.q * r.q)  就相等于上面的式子 1*5 + 2*3,5*2 也就是11/10

0 回复 有任何疑惑可以回复我~

有理数就是分数和整数的集合,所以p/q就是一个分数。计算分数的加法就是先通分在相加。。。。你明白有理数是什么就是知道这个算式是什么意思了

2 回复 有任何疑惑可以回复我~

这里有两个对象,一个是r1,另一个是r2,分别对应def __add__(self,r):
中的self,r,r是一个对象,它有两个属性p和q,r1 = Rational(1, 2),r2 = Rational(1, 4),所以self.p=r1.p=1, self.q=r1.q=2,

r.p=r2.p=1, r.q=r2.q=3,

return Rational(self.p * r.q + self.q * r.p, self.q * r.q) 表示返回两个参数p和q的值,以便下面

def __str__(self):
   return '%s/%s' % (self.p, self.q)

调用


7 回复 有任何疑惑可以回复我~
#1

1小马哥1

def __add__(self,r) 这里的r不是实例的属性吗?怎么变成对象了?搞不懂
2018-09-28 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

Rational(self.p * r.q + self.q * r.p, self.q * r.q)

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