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

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