亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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

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

舉報

0/150
提交
取消

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

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號