答案 0 :(得分:3)
让我们看一下__init__
的{{1}}:
Section
出于某种原因,此代码的作者已决定多次将def __init__(self, parent, depth, main, indict=None, name=None):
传递给self
Section
。我没有详细查看代码,但这通常意味着可以构造对象,而在其他情况下,这些参数会有所不同(即,每次都不会__init__
。
因此,对于此特定调用,self
表示的对象扮演各种角色,这就是为什么将对象多次传递给父类self
的原因。因此,要理解为什么__init__
被多次传递,您需要查看参数的目的,并了解为什么它们在这种情况下是相同的。可以想象的是,在参数不同的情况下,将创建实例,因为"角色"然后由不同的对象处理,而不是由同一个对象处理。