icon
icon

Pythonのクラス継承について現役エンジニアが解説【初心者向け】

初心者向けにPythonのクラス継承について現役エンジニアが解説しています。継承とはオブジェクト指向の特徴の一つで、他のクラスのプロパティやメソッドを引き継ぐことができます。継承を利用することで部品ごとにプログラムを作成することが出来ます。Pythonでクラスを継承する方法など解説します。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Pythonのクラス継承について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

 

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まるでしょう。

 

なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonのクラス継承について詳しく説明していくね!

大石ゆかり

お願いします!

 

クラス継承とは

継承とは、オブジェクト指向の特徴の1つであり、新しいクラスを作り出すことを指します。

継承元を親クラス、継承先を子クラスと呼び、子クラスは親クラスの性質(メソッド等)を引き継ぐことが可能です。

クラス継承を利用することで、コードの再利用性を高めることができます。

一般には、抽象性や汎用性が高いものを親クラス、具体性が高いものを子クラスとして表すことを覚えておきましょう。

 

Pythonでのクラス継承のやり方

以下のようにChildクラスを定義し、Parentクラスを継承できます。

class Child(Parent):
  # Childクラスの定義

 

[PR] Pythonで挫折しない学習方法を動画で公開中

実際に書いてみよう

以下、ソースコードとなります。

# 乗り物を示す汎用的なクラス
class Vehicle:
  def __str__(self):
    return f'{self._get_type()}には車輪が{self._get_wheels()}個ある'

# バイクを示す具体的なクラス
class Motorbike(Vehicle):
  def _get_type(self):
    return 'バイク'
  def _get_wheels(self):
    return 2

# 車を示す具体的なクラス
class Car(Vehicle):
  def _get_type(self):
    return '車'
  def _get_wheels(self):
    return 4
  
m = Motorbike()
print(m)

c = Car()
print(c)

 

実行結果

バイクには車輪が2個ある
車には車輪が4個ある

 

では、コードを解説していきます。

まず、親クラスとしてVehicleを定義しました。

Vehicleクラスでは文字列表現を示す__str__メソッドを定義しました。

__str__メソッドは、_get_type, _get_wheelsメソッドを呼び出したうえで、子クラスで実装しました。

 

次に子クラスとしてMotorbike, Carを定義します。

これらでは_get_type, _get_wheelsを具体的に実装しました。

Motorbike, Carのインスタンスをprintすると、子クラスでの実装に応じて挙動の変わることを確認できました。

 

まとめ

この記事ではクラスの継承、親子クラスの実装方法を紹介しました。

有効に活用することによって

 

執筆してくれたメンター

橋本紘希(はしもとひろき)

システムインテグレータ企業勤務のシステムエンジニア。

開発実績: Javaプログラムを用いた業務用Webアプリケーションや基幹システム用バッチアプリケーションなどの設計構築試験。

 

大石ゆかり

Pythonのクラス継承について、よく分かったので良かったです!

田島悠介

ゆかりちゃん、これからも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、参加してみてください。