擅长:python、mysql、java
<p>粗略地说,mix-in-class是一个类,它不打算直接实例化或作为独立的基类(除了其他更专业的mix-in-class),而是提供另一个类可以继承的一小部分功能</p>
<p>在本例中,您的<code>GenericDerived</code>类是mix-ins的完美示例:您没有创建<code>GenericDerived</code>的实例,但是您可以从它们继承来向您自己的类添加<code>calculate</code>方法</p>
<pre><code>class Calculator:
def calculate(self):
return 9
class Calculator1(Calculator):
def calculate(self):
return super().calculate() + 5
class Calculator2(Calculator):
def calculate(self):
return super().calculate() + 10
class Base(Calculator):
...
</code></pre>
<p>注意<code>Base</code>和<code>Calculator</code>层次结构彼此独立<code>Base</code>除了提供其他功能外,还提供基本的<code>calculate</code>功能。<code>Base</code>的子类可以使用它从<code>Base</code>继承的<code>calculate</code>(通过<code>Calculator</code>),也可以从<code>Calculator</code>的子类继承</p>
<pre><code>class Derived1(Base):
...
class Derived2(Base, Calculator1):
...
class Derived3(Base, Calculator2):
...
</code></pre>