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