我正在查看父類調(diào)用的代碼super:class ParentClass: def __init__(self): super(ParentClass, self).__init__()我不明白為什么有人會自己調(diào)用 super 以及這怎么不會卡在遞歸循環(huán)中。我缺少 Python 機(jī)制的背景嗎?
1 回答
桃花長相依
TA貢獻(xiàn)1860條經(jīng)驗 獲得超8個贊
在 python 中,所有類都是隱式的子類object。super將始終遵循方法解析順序( mro) 來確定調(diào)用哪個函數(shù)。這在 中得到了很好的解釋super docs。
所以,對于像這樣的類——
class ParentClass: def __init__(self): super(ParentClass, self).__init__()
以下mro- ParentClass->object
這意味著super(ParentClass, self)(或簡寫super())轉(zhuǎn)換為object并且object.__init__()確實是一個非常有效的調(diào)用。
添加回答
舉報
0/150
提交
取消
