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了,感覺很困惑
2023-01-12
?r1?=?Rational(1,?2)?
這里是調(diào)用了Rational類的__init__方法創(chuàng)建了一個實例,然后將這個實例賦予給了r1;
這是調(diào)用了r1這個實例的__add__方法,self是指實例本身也就是r1,而r這個參數(shù)就是指代r2,下文兩個語句是等價的
從這地方引申出來,假設還有一個r3,那程序是怎么跑的呢
程序會先算r1+r2,然后再用這個算出的結(jié)果x去+r3