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の多重継承は、一つのクラスが複数のクラスから継承することを可能にします。これにより、より柔軟なクラス設計が可能となります。ただし、多重継承は複雑性を増すため、適切に使用することが重要です。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です