Re:ゼロから始める文系プログラマ

未経験がプログラミングを通して人生を変える

【Python・クラス】~クラス継承~


スポンサードリンク
 

f:id:ShotaNukumizu_1000:20210405111435p:plain

おはようございます。Shotaです。今日も早速、Pythonに関する記事を書いていきます。

今日は「クラス継承」について説明していきます。

【目次】

継承

クラスには、多くの値や処理をひとまとめにする仕組みが用意されています。これによってクラスの中に多くの機能を組み込むことができます。ただし、そのためにはすべてのメソッドの実行文を書く必要があります。

その時、特定のクラスにあるメソッドを全てコピペして新しいクラスを作るのはもちろんできます。しかし、これは面倒ですし、コードをコピペする段階でバグが紛れ込んでしまうかもしれません。もっと簡単に、既にあるクラスを再利用できる方法があれば、このような手間は必要ありません。そこで考え出されたのが継承です。

継承は、既にあるクラスのすべての機能を全てそのまま受け継いで新しいクラスを定義することです、受け継ぐというのは、その中身をコピペするわけではありません。何をしなくとも、継承する元のクラスにある変数やメソッドがすべて使えるようになります。以下のように定義します。

class クラス名(継承するクラス):
 ---実行文---

クラスの後に()をつけて、そこに継承したいクラス名を指定します。これで、そのクラスを継承する新しいクラスを定義できます。

継承の利用

実際に継承を利用してみましょう。まずは必要最低限のクラスを使って、継承の働きを見てみます。

class Sample1:
    val = 'value'

class Sample2(Sample1):
    num = 20

ob = Sample1()
print(ob.val)
ob2 = Sample2()
print(f'{ob2.val}, {ob2.num}')    

▼実行結果

value
value, 20

1行目がSample1インスタンスのval、2行目がSample2インスタンスのvalとnumです。クラスの定義を見ると、Sample1にはvalインスタンス変数が、Sample2にはnumインスタンス変数が用意されているのがわかります。Sample2では、valとnum両方の値を取り出せます。継承によって、Sample1のvalが使えるようになっているためです。

まとめ

【本日のまとめ】

  • 継承は、既にあるクラスのすべての機能(変数やメソッド)を全てそのまま受け継いで新しいクラスを定義すること。何をしなくても、継承する元のクラスにある変数やメソッドがすべて使えるようになる

  • 継承を利用してクラスを定義する場合は、クラス名の後に()で継承するクラスを指定する

  • 一部だけ違う新しいクラスを作る時、継承すれば機能を引き継げる。

本ブログでは、こんな感じでPythonに関する記事を解説していきます。この記事が気に入ったと思う人はSNS等にシェアしていただけると非常に嬉しいです。

明日も今日に引き続いて「クラス継承」について解説していきます。

最後まで読んでくださり、本当にありがとうございました。

【参考図書】

『かんたんPython技術評論社