Pythonにおけるsuper()の利用方法を現役エンジニアが解説【初心者向け】
初心者向けにPythonにおけるsuper()の利用方法について現役エンジニアが解説しています。superメソッドは、Pythonのクラスを継承したクラスが、継承元のメソッドを呼び出す際に使用します。Pythonでのsuperの使い方を確認して、実際に継承先のクラスで使ってみましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Pythonにおけるsuper()の利用方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。
Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
Pythonにおけるsuper()の利用方法について詳しく説明していくね!
お願いします!
この記事ではPythonにおけるsuper()の利用方法について解説します。
super()とは?
Pythonではあるクラス(子クラス)で別のクラス(親クラス)を継承できます。継承することで、親クラスのメソッドを子クラスから呼び出すことができます。
その際に使うのがsuper()です。
super()の使い方
super()は以下の形式で使うことができます。
super().親クラスのメソッド # python3系での標準の書き方 super(親クラスのオブジェクト, self).親クラスのメソッド # python2系での書き方
python2系での書き方のように、super()の引数として親クラスのオブジェクトとselfを持つ書き方が標準でしたが、3系になり省略する形が標準となりましたので注意しましょう。
super()を呼ぶことで親クラスのメソッドなどを呼び出すことができるようになります。
super()を利用して親クラスのメソッドを呼び出そう
では実際にsuper()を利用して親クラスのメソッドを呼び出してみましょう。
プログラムソースコード
class Person(): def __init__(self, name, age): self.name = name self.age = age def say_name(self): print("私の名前は" + self.name + "です。年齢は" + str(self.age) + "歳です。") class JapanesePerson(Person): def __init__(self, name, age): super().__init__(name, age) def say_hello(self): print("こんにちは") yamada = JapanesePerson("山田", 20) yamada.say_name() yamada.say_hello()
実行結果
私の名前は山田です。年齢は20歳です。 こんにちは
Personクラスにはコンストラクタとsay_nameメソッドを持っています。JapanesePersonクラスではPersonクラスを継承し、クラス内でコンストラクタとsya_helloメソッドを定義しています。
JapanesePersonクラスのコンストラクタの中でsuper()を使いPersonクラスのコンストラクタを呼び出しています。
JapanesePersonクラスでインスタンスを生成したらクラス内で定義しているsya_helloメソッドを呼び出せると共に親クラスのPersonクラスに定義しているsay_nameメソッドも呼び出すことができています。
監修してくれたメンター
メンターSさん
システムエンジニアとしてこれまで行政システムや医療用システムの保守、開発に携わりました。 JavaやPython、PHP、Kotlinなど様々な言語での開発経験があります。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でも、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。