我正在查看父类调用的代码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
提交
取消