擅长:python、mysql、java
<blockquote>
<p>Is this just a bad design of 'cooperative classes'?</p>
</blockquote>
<p>是的,特别是因为属性冲突。如果属性的名称不相同,那么到目前为止,<code>B.z</code>不会被<code>C.z</code>覆盖。在</p>
<blockquote>
<p>What is a cooperative class exactly?are there rules or guidelines one should follow?</p>
</blockquote>
<p>你已经读过的那个:</p>
<p><a href="http://rhettinger.wordpress.com/2011/05/26/super-considered-super/" rel="nofollow">http://rhettinger.wordpress.com/2011/05/26/super-considered-super/</a></p>
<p>据我所知,这是合作类规则/指南的最佳来源。在</p>
<p>你可以做出选择。您可以:</p>
<ul>
<li>使属性名在继承树中的所有类中唯一</li>
</ul>
<p>或者</p>
<ul>
<li>总是把所有的论点都传下去。此时,您不妨将所有签名更改为<code>__init__(self, **kwargs)</code></li>
</ul>
<p>或者</p>
<ul>
<li>不要使用多重继承</li>
</ul>