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

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在子類的另一個方法中調(diào)用超類的方法

在子類的另一個方法中調(diào)用超類的方法

qq_遁去的一_1 2023-07-18 15:02:12
我已經(jīng)詢問了一些與我正在開發(fā)的游戲相關(guān)的問題。該問題是在開發(fā)過程中出現(xiàn)的,但實(shí)際上與游戲本身無關(guān)。我的代碼中有一個方法(子類中的“resize”),它調(diào)用其超類中的等效方法(超類的“resize”)。預(yù)期行為:超級調(diào)整大小調(diào)用 Super-do_rotozoom發(fā)生了什么:稱為 Sub-do_rotozoom 的超級調(diào)整大小這是一個代碼示例:子類:def do_rotozoom(self):    # do rotozoom stuff of subclassdef resize(self,factor):    super().resize(factor)    self.do_rotozoom()超類:def do_rotozoom(self):    #do rotozoom stuff of superclassdef resize(self,factor):    self.factor = factor    self.do_rotozoom()我找到了一個解決方法,其中涉及調(diào)用super().do_rotozoom()子類方法do_rotozoom(),然后由super().resize(). 我還發(fā)現(xiàn),在這種情況下我可以刪除該行self.do_rotozoom()。在這種情況下,這是一個非常簡單的修復(fù),但是在更復(fù)雜的情況下我會做什么,例如,如果我需要使用do_rotozoom()超類中的其他變量調(diào)用該方法,而不是在子類/另一個特定實(shí)現(xiàn)中調(diào)用該方法?換句話說,我如何能夠選擇在特定上下文中使用哪種方法?通常,您只能從子類訪問超方法,但不能從超類訪問超方法(不是超類的方法,而是它自己的方法)。我還沒有找到更好的標(biāo)題...:D
查看完整描述

2 回答

?
楊魅力

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個贊

開發(fā)人員往往更喜歡組合而不是繼承,它更易于管理。

我建議您做的就是在子類中包含超類的實(shí)例,并在需要時(shí)使用它。


查看完整回答
反對 回復(fù) 2023-07-18
?
不負(fù)相思意

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個贊

子類的定義就是它繼承了超類的所有內(nèi)容,除了它重寫的方法和屬性之外。

子類可以使用 引用其超類及其方法實(shí)現(xiàn)super(),就像您在示例中所做的那樣。

要么不要重寫do_rotozoom,要么引用超類方法來super().do_rotozoom()實(shí)現(xiàn)您需要的行為。


查看完整回答
反對 回復(fù) 2023-07-18
  • 2 回答
  • 0 關(guān)注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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