python|super関数の使い方について
記事No.90
更新日時2023年03月23日
super関数を使う
クラス内でsuper関数を使う
この記事で分かる事
■記事ページを表示中
記事No.90
更新日時2023年03月23日
この記事で分かる事
super関数は、親クラスのメソッドを呼び出す際に使用します。
#親クラスを定義 class Person: """人クラス""" def __init__(self, name, age): self.name = name self.age = age def introduce(self): print(f"私の名前は{self.name}です。{self.age}歳です。") #子クラスを定義 class Singer(Person): """歌手クラス""" def sing(self): print("歌う") #親クラスのintroduceメソッドをオーバーライドしている def introduce(self): print(f"私は歌手です。") #親クラスを実行 singer_one = Singer("佐藤", 20) #親クラスのメソッドを実行 #super(子クラス名, インスタンス).メソッド名 super(Singer, singer_one).introduce() #出力結果 私の名前は佐藤です。20歳です。
このコードの場合、子クラスのSingerがintroduceメソッドをオーバーライドしているので、親クラスのintroduceメソッドを呼び出したい場合は、super関数を使います。
super関数は、クラス内で使用する事もできます。
#親クラスを定義 class Person: """人クラス""" def __init__(self, name, age): self.name = name self.age = age def introduce(self): print(f"私の名前は{self.name}です。{self.age}歳です。") #子クラスを定義 class Singer(Person): """歌手クラス""" def sing(self): print("歌う") def introduce(self): #親クラスのメソッドを呼び出す super().introduce() print("私は歌手です。") singer_one = Singer("佐藤", 20) singer_one.introduce() #出力結果 私の名前は佐藤です。20歳です。 私は歌手です。
名前:スカーレット
2010年からWEBサイトやWEBアプリを作成しています。最初は趣味でブログを書いていましたがSEOを勉強するのが楽しくなり、そのままブロガーとして独立しました。その後、記事を書くだけでは物足りなくなり自分でWEBアプリの作成をスタート。現在はブロガー兼プログラマーとして活動しています。このWEBアプリ(ブロトーク)もDjangoで自作しました。ブロトークはブログとSNSを合体させたようなWEBアプリです。ブログを読んで気づいた事や感想などあれば、気軽にメッセージを送って頂ければと思います。WEB技術を一緒に勉強していけたらと思います。
投稿No.67
投稿日Feb. 18, 2023
コメントフォーム