第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

自建的類(lèi)Rational為什么可以用作函數(shù)?

class?Rational(object):
????def?__init__(self,?p,?q):
????????self.p?=?p
????????self.q?=?q
????def?__add__(self,?r):
????????return?Rational(self.p?*?r.q?+?self.q?*?r.p,?self.q?*?r.q)

最后一行return還出現(xiàn)了Rational(后面加運(yùn)算邏輯),這不是函數(shù)的表達(dá)方式嗎?這是把( )里的東西都變成了Rational這個(gè)type?

但是return里應(yīng)用Rational還在創(chuàng)建Rational類(lèi)的這整個(gè)代碼塊里,這是一種什么循環(huán)?還沒(méi)創(chuàng)建完怎么就能自己用了?

正在回答

2 回答

首先調(diào)用add函數(shù)實(shí)在創(chuàng)建Rational類(lèi)之后的,所以在調(diào)用這個(gè)函數(shù)的時(shí)候Rational已經(jīng)創(chuàng)建完了,不會(huì)出現(xiàn)問(wèn)題

Rational()是創(chuàng)建一個(gè)Rational類(lèi)型的對(duì)象,調(diào)用的是__init__構(gòu)造方法,這個(gè)函數(shù)返回一個(gè)Rational類(lèi)型的對(duì)象,這個(gè)對(duì)象是運(yùn)算結(jié)果

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

葡萄葡萄 提問(wèn)者

謝謝你的解釋
2020-10-25 回復(fù) 有任何疑惑可以回復(fù)我~

通俗解釋一下樓上的話:

類(lèi)里面的的方法(def)并不是一用就全部一起用的,

在:r1 = Rational(1,2)和r2 = Rational(2,3)也就是創(chuàng)建對(duì)象的時(shí)候

使用了 __init__

當(dāng)遇到print(r1+r2)的時(shí)候就用__add__

print(r1-r2)的時(shí)候就用__sub__

大概就這意思吧!


2 回復(fù) 有任何疑惑可以回復(fù)我~
#1

葡萄葡萄 提問(wèn)者

謝謝你的解釋 這我就看懂這個(gè)運(yùn)行順序啦~
2020-10-25 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

自建的類(lèi)Rational為什么可以用作函數(shù)?

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)