鍍金池/ 問(wèn)答/Python/ 【python小白】 問(wèn)關(guān)于super().到底什么作用?

【python小白】 問(wèn)關(guān)于super().到底什么作用?

問(wèn)個(gè)很基礎(chǔ)的問(wèn)題,如圖:

clipboard.png

clipboard.png

這是一個(gè)在書上看到的問(wèn)題
我想問(wèn)的是,代碼第60行和64行

    def __init__(self,make,model,year):    
        super().__init__(make,model,year) #這一句話到底是什么意思?或者說(shuō)這兩句話放在一起是什么效果?

這個(gè)類是繼承了Car的子類,如果說(shuō)第60行的init方法是為了重寫父類的方法,那么super這一句話到底是能起什么作用呢?
哪位大神可以用一句話清晰的表述一下么?我每次搞懂了,后來(lái)都忘了,我覺(jué)得究其原因還是自己理解不深刻。

回答
編輯回答
款爺

super() 就是找爹

super().__init__(...) 就是說(shuō):"爹,先執(zhí)行一下你的__init__方法,等你干完了我再來(lái)做我的事。"

用途就是,你繼承一個(gè)父類了,原先父類的初始化方法里有很多東西,你又不打算自己重新寫一遍,那就叫父類先執(zhí)行原來(lái)的邏輯,再執(zhí)行后邊的。

2018年5月1日 08:20
編輯回答
初念

super 的作用是按照 MRO 尋找最近的來(lái)執(zhí)行

可以簡(jiǎn)單理解成「尋找父類的方法」

類的 init 中非常常見(jiàn),為了防止父類未被按照合適的方法被初始化

2018年1月30日 03:39
編輯回答
空痕

請(qǐng)看文檔
https://docs.python.org/3/lib...
和幫助

clipboard.png

clipboard.png

2018年3月19日 04:52