回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个继承自其他两个类的类。这些是基类:</p>
<pre><code>class FirstBase(object):
def __init__(self, detail_text=desc, backed_object=backed_object,
window=window, droppable_zone_obj=droppable_zone_obj,
bound_zone_obj=bound_zone_object,
on_drag_opacity=on_drag_opacity):
# bla bla bla
class SecondBase(object):
def __init__(self, size, texture, desc, backed_object, window):
# bla bla bla
</code></pre>
<p>这就是孩子:</p>
<pre><code>class Child(FirstBase, SecondBase):
""" this contructor doesnt work
def __init__(self, **kwargs):
# PROBLEM HERE
#super(Child, self).__init__(**kwargs)
"""
#have to do it this TERRIBLE WAY
def __init__(self, size=(0,0), texture=None, desc="", backed_object=None,
window=None, droppable_zone_obj=[], bound_zone_object=[],
on_drag_opacity=1.0):
FirstBase.__init__(self, detail_text=desc, backed_object=backed_object,
window=window, droppable_zone_obj=droppable_zone_obj,
bound_zone_obj=bound_zone_object,
on_drag_opacity=on_drag_opacity)
SecondBase.__init__(self, size, texture, desc, backed_object, window)
</code></pre>
<p>我想用<code>**kwargs</code>很好地解决这个问题,但是当我调用第一个注释掉的构造函数时,我得到了<code>TypeError: __init__() got an unexpected keyword argument 'size'</code>。</p>
<p>有什么办法可以让它和<code>**kwargs?</code>一起工作吗</p>