擅长:python、mysql、java
<p>如上所述,我要获取“当前类的父类”</p>
<p>但你知道的。在二班是一班。我想打电话给你。总是这样。所以你可以打电话给班一。在</p>
<p>但是当前类的父类的正确方法是super()。但你是这样用的:</p>
<pre><code>super(type(self), self)
</code></pre>
<p>这会让你成为自我类的父类。在你的例子中self的类是class3,所以正如你所注意到的,它总是返回class2。正确的使用方法如下:</p>
^{pr2}$
<p>使用super()和直接调用类之间的区别在于,如果在层次结构的某个地方使用多重继承。Super会找出哪个是正确的类。在</p>
<hr/>
<p>更新:</p>
<p>当你定义一个class4并调用它时会发生什么?在</p>
<pre><code>>>> class class4(class3):
... pass
...
>>> y = class4()
class3.__init__()
class2.__init__()
class1.__init__()
</code></pre>
<p>正如您所说,目标是调用<code>class3.__init__()</code>。这正是发生的事情,因为根据正常的继承规则,类4将从类3继承<code>__init__</code>。在</p>
<p>您希望<code>class2.__init__()</code>被调用,但我不明白您为什么要这样做。您从类3继承,因此它的<code>__init__</code>将被调用。它依次调用每个设计的<code>class2.__init__</code>。在</p>