回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一节课:</p>
<pre><code>class A(object):
def __init__(self,a,b,c,d,e,f,g,...........,x,y,z)
#do some init stuff
</code></pre>
<p>我有一个子类需要一个额外的参数(最后一个<code>W</code>)</p>
<pre><code>class B(A):
def __init__(self.a,b,c,d,e,f,g,...........,x,y,z,W)
A.__init__(self,a,b,c,d,e,f,g,...........,x,y,z)
self.__W=W
</code></pre>
<p>编写所有这些锅炉盘代码似乎是愚蠢的,例如将所有参数从<code>B</code>的Ctor传递到<code>A</code>的Ctor的内部调用,从那时起,对<code>A</code>的Ctor的每次更改都必须应用到<code>B</code>代码中的其他两个位置。</p>
<p>我猜python有一些习惯用法来处理这些我不知道的情况。你能告诉我正确的方向吗?</p>
<p>我最好的预感是,为a设置一个拷贝Ctor,然后将B的代码更改为</p>
<pre><code>class B(A):
def __init__(self,instanceOfA,W):
A.__copy_ctor__(self,instanceOfA)
self.__W=W
</code></pre>
<p>这将适合我的需要,因为我总是在给定父类的实例时创建子类,尽管我不确定是否可能。。。</p>