Pythonでは、一つのクラスが複数のクラスから継承することが可能です。これを「多重継承」と呼びます。
多重継承とは
多重継承は、「複数のクラスからその機能を継承する」ことを指します。例えば、「AクラスとBクラスを基にCクラスを作成する」のが多重継承です。
Pythonでの多重継承の実装
Pythonで多重継承を行うには、クラス定義で基底クラスを複数記述します。以下に例を示します。
class A:
def hello(self):
print('Hello from A')
class B(A):
pass
class C(A):
def hello(self):
print('Hello from C')
class D(B, C):
pass
この例では、Aクラスを大本のクラスとして定義し、その直接の派生クラスとしてBクラスとCクラスを定義しています。そして、それら2つのクラスを基にDクラスを定義しています。
メソッドの解決順序
多重継承を行った場合、どのクラスのメソッドが呼び出されるかは、「メソッドの解決順序」(Method Resolution Order:MRO)によって決まります。Pythonでは、このMROは「C3線形化」と呼ばれるアルゴリズムを用いて決定されます。
まとめ
Pythonの多重継承は、一つのクラスが複数のクラスから継承することを可能にします。これにより、より柔軟なクラス設計が可能となります。ただし、多重継承は複雑性を増すため、適切に使用することが重要です。