<p>考虑以下两类:</p>
<pre><code>class A(object):
name = "A"
class B(A):
name = "Child of " + A.name
</code></pre>
<p>很简单。<code>A.name</code>将是“A”,而<code>B.name</code>将是“A的子级”。你知道吗</p>
<p>但是将<code>A.name</code>硬编码到<code>B</code>的<code>name</code>定义中似乎是错误的。我很自然地想写一些东西,比如:</p>
<pre><code>class B(A):
name = "Child of " + super(B).name
</code></pre>
<p>但是这就产生了一个<code>NameError</code>,其中<code>B</code>尚未在表达式<code>super(B)</code>中定义。(另外,我不确定它是否应该是<code>super(B)</code>或者<code>super(B, B)</code>或者其他什么,但是考虑到<code>NameError</code>,这是一个没有意义的观点。)</p>
<p>正确的方法是什么,即在类属性的定义中使用<code>super</code>?你知道吗</p>