我正在查看父類調(diào)用的代碼super:class ParentClass: def __init__(self): super(ParentClass, self).__init__()我不明白為什么有人會(huì)自己調(diào)用 super 以及這怎么不會(huì)卡在遞歸循環(huán)中。我缺少 Python 機(jī)制的背景嗎?
1 回答

桃花長(zhǎng)相依
TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊
在 python 中,所有類都是隱式的子類object
。super
將始終遵循方法解析順序( mro
) 來確定調(diào)用哪個(gè)函數(shù)。這在 中得到了很好的解釋super docs
。
所以,對(duì)于像這樣的類——
class ParentClass: def __init__(self): super(ParentClass, self).__init__()
以下mro
- ParentClass
->object
這意味著super(ParentClass, self)
(或簡(jiǎn)寫super()
)轉(zhuǎn)換為object
并且object.__init__()
確實(shí)是一個(gè)非常有效的調(diào)用。
添加回答
舉報(bào)
0/150
提交
取消