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

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

Init函數(shù)在python中的多重繼承中執(zhí)行

Init函數(shù)在python中的多重繼承中執(zhí)行

HUX布斯 2023-03-08 11:07:20
我是 python 的新手,正在嘗試了解 python 中的繼承。Python 具有多重繼承的特性。一個類可以同時繼承多個類。當我們創(chuàng)建子類的對象時,會調用子類的init函數(shù)。我想調用子類的兩個父類的 init 函數(shù),但我只能調用一個 init 函數(shù)。我閱讀了方法解析順序的概念,最左邊的類繼承的 init 函數(shù)將被調用。請更正我的代碼,以便調用兩個父類的 init 函數(shù)。class A:    def __init__(self):        print("in A Init")    class B:    def __init__(self):        print("in B Init")    class C(B,A):    def __init__(self):        super().__init__()        print("in C Init")cObj= C()
查看完整描述

1 回答

?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

所有__init__函數(shù)都需要調用super().__init__(),如下所示:


class A:

    def __init__(self):

        super().__init__()

        print("in A Init")


class B:

    def __init__(self):

        super().__init__()

        print("in B Init")


class C(B, A):

    def __init__(self):

        super().__init__()

        print("in C Init")


c_obj= C()

當您調用它時,您會得到以下輸出:


in A Init

in B Init

in C Init

根據super()函數(shù)文檔,它返回對類的“父級或兄弟級”的引用,以方法解析順序中的下一個為準。在層次結構的頂部,它返回對隱式父類的引用object,它有一個__init__什么都不做的空方法。


為了使其正常工作,最好所有繼承的__init__函數(shù)都具有相同的簽名,包括公共基類;在這種情況下,簽名只是__init__(self)(沒有額外的參數(shù)),而公共基類是object,它也__init__(self)沒有額外的參數(shù),所以這一切都很好。另一種常見模式是它們都采用關鍵字參數(shù)并傳遞**kwargs給下一個參數(shù)。


查看完整回答
反對 回復 2023-03-08
  • 1 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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