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

self和r分别代表什么意思?self.p * r.q + self.q * r.p, self.q * r.q

self.p * r.q + self.q * r.p, self.q * r.q

在这里面self和r都代表什么呢?

>>> r1 = Rational(1, 2) 
运行这段时,self指代实例r1,self.p=1,self.q=2, 

得出:
1*r.q+2*r.p, 2*r.q

这里面的r指代r2吗?为什么程序知道 def __add__(self, r)的r指代r2呢?


>>> r2 = Rational(2, 3)
运行这段时,self又指代实例r2了,感觉很困惑

正在回答

1 回答

 r1 = Rational(1, 2) 

这里是调用了Rational类的__init__方法创建了一个实例,然后将这个实例赋予给了r1;

self.p * r.q + self.q * r.p, self.q * r.q

这是调用了r1这个实例的__add__方法,self是指实例本身也就是r1,而r这个参数就是指代r2,下文两个语句是等价的

print(r1+r2)
print(r1.__add__(r2))

从这地方引申出来,假设还有一个r3,那程序是怎么跑的呢

r1 = Rational(1, 2)
r2 = Rational(2, 3)
r3 = Rational(3, 4)
print(r1+r2+r3)

程序会先算r1+r2,然后再用这个算出的结果x去+r3

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

举报

0/150
提交
取消

self和r分别代表什么意思?self.p * r.q + self.q * r.p, self.q * r.q

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