我正在查看父類調用的代碼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
提交
取消
