Python 3 – 多重継承の説明-Pythonチュートリアル

1つのクラスは、複数のスーパークラスから継承できます。 多重継承は、標準継承または単一継承の拡張です。 原則は同じです。クラスは別のクラスから継承します。

多重継承は、より多くの親クラスから継承するという考えです。 クラスは、2、3、または複数のクラスから継承できます。

関連コース: 完全なPythonプログラミングコースと演習

前書き

クラスはPythonの複数のクラスから継承できます (これは他のプログラミング言語には常に当てはまるとは限りません)
クラスを作成すると、親クラス(スーパークラスと呼ばれることもあります)から継承させることができます。

クラス自体には複数の親があるため、サブクラスという名前を付けることができます。

クラスがスーパークラスから継承する場合、そのクラスはすべての属性とメソッドを取得します。 スーパークラスが4つある場合は、それらすべてを継承するだけです。

一般的な形式は次のとおりです。

1
class Subclass(SuperClass1, SuperClass2, SuperClass3, ..):

あなたはそれを次のように視覚的に見ることができます:

多重継承

多重継承

以下のプログラムでは、HumanとCoderの2つのスーパークラスが定義されています。 Pythonistaクラスは、次のコード行を使用して両方のクラスから継承します。

1
class Pythonista(Human, Coder):

プログラムは、オブジェクトを作成することによって続行されます。 オブジェクトには、スーパークラスとそれ自体の3つのクラスすべての属性があります。 スーパークラスまたはクラスでメソッドを定義すると、オブジェクトにはすべてのメソッドが含まれます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Human:
name = ""

class Coder:
skills = 3

class Pythonista(Human, Coder):
version = 3

obj = Pythonista()
obj.name = "Alice"

print(obj.name)
print(obj.version)
print(obj.skills)

批判

多重継承の批評家は、それが複雑さを増し、コードが再利用可能になるのを難しくすると指摘しています。 その点で、クラスを新しいプログラムにコピーする場合は、すべてのスーパークラスもコピーする必要があります。

これは1つのクラスでは問題ないかもしれませんが、コードに複数の継承がある場合、他のプログラムの再利用可能なコンポーネントとしてパーツを使用するのは困難です。

実際、プログラムに多重継承を追加すると、クラス間に強力な結束が生まれます。 しかし、それはそれが有用なツールではないという意味ではありません。

初心者の方は、 それなら私はこの本を強くお勧めします。

演習

次の演習を試してください。

  • すべてのプログラミング言語は多重継承をサポートしていますか?
  • なぜ多重継承を使わないのですか?
  • 継承できるクラスの数に制限はありますか?

上記の演習セクションで回答をダウンロードしてください。

例をダウンロード

Hope this helps!

Source link