课程
/后端开发
/Python
/python进阶
Rational(self.p * r.q + self.q * r.p, self.q * r.q) 为什么要这么写。后面的 self.q * r.q是什么意思
2015-11-17
源自:python进阶 6-5
正在回答
Rational指的是对有理数的处理
p是分子,q是分母,一个有理数 x(p,q)
self是第一个参数,r是第二个参数,现在两个有理数相加,比如1/2 + 3/5 ,是不是就等于1*5/2*5 + 3*2/5*2
Rational(self.p * r.q + self.q * r.p, self.q * r.q) 就相等于上面的式子 1*5 + 2*3,5*2 也就是11/10
有理数就是分数和整数的集合,所以p/q就是一个分数。计算分数的加法就是先通分在相加。。。。你明白有理数是什么就是知道这个算式是什么意思了
这里有两个对象,一个是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)
调用
1小马哥1
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计