人生が変わるオンラインサロン!
月3万副業収入が得られる!Mサロン!31日間無料体験!Pythonをさらに学びたい方へ
Pythonを理解して頂くために参考書を執筆致しました!
Pythonのラムダ式、リスト、辞書型、Pandasなどを学びたい方にオススメの本となっています。演習問題をたくさん用意しているので、実践形式で理解しやすい内容となっています
下記の画像をクリック!!kindleunlimitedの会員であれば無料で見れます!
⇩初心者向け ⇩中級者向け
PythonでChatGPTAPIを使ってブログ作成を自動化しませんか?
Pythonのsuper関数とは
Pythonのsuper関数は、基本的には親クラスの属性やメソッドにアクセスするために使用されます。これは特にオーバーライドされたメソッドで親クラスのメソッドを呼び出す場合に便利です。
具体的には、以下のように使います。

ソースコード例1
1 2 3 4 5 6 7 8 9 10 11 |
class ParentClass(): def test(self): print("Parent class method") class ChildClass(ParentClass): def test(self): super().test() print("Child class method") obj = ChildClass() obj.test() |
出力結果
Parent class method
Child class method

super関数の特性
super関数のもう一つの重要な特性は、Pythonのメソッド解決順序(MRO)に基づいて、親クラスを選択するということです。これは多重継承が行われる場合に特に重要となります。
以下に、多重継承とsuper関数を組み合わせた例を示します。

ソースコード例2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
class Parent1(): def test(self): print("Parent1's method") class Parent2(): def test(self): print("Parent2's method") class Child(Parent1, Parent2): def test(self): super().test() obj = Child() obj.test() |
出力結果
Parent1's method

super関数の引数
super関数には2つの引数を指定することが可能です。
それは以下のように指定されます。

ソースコード例3
1 2 3 4 5 6 7 8 9 10 11 |
class Parent(): def test(self): print("Parent's method") class Child(Parent): def test(self): super(Child, self).test() print("Child's method") obj = Child() obj.test() |
出力結果
Parent's method
Child's method

super関数の注意点
super関数を使う際には、以下のような注意点があります。
1. クラスがobjectクラスを継承していないと、super関数はTypeErrorを発生させます。
2. super関数はインスタンスメソッドでしか使えません。クラスメソッドやスタティックメソッドでは使うことができません。

まとめ
今回は、Pythonのsuper関数の使い方について詳しく解説しました。super関数は、親クラスのメソッドを呼び出すための強力なツールであり、正しく理解し使えば、コードの再利用性を高めることが可能です。
最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!

人生が変わるオンラインサロン!
月3万副業収入が得られる!Mサロン!31日間無料体験!Pythonをさらに学びたい方へ
Pythonを理解して頂くために参考書を執筆致しました!
Pythonのラムダ式、リスト、辞書型、Pandasなどを学びたい方にオススメの本となっています。演習問題をたくさん用意しているので、実践形式で理解しやすい内容となっています
下記の画像をクリック!!kindleunlimitedの会員であれば無料で見れます!
⇩初心者向け ⇩中級者向け
PythonでChatGPTAPIを使ってブログ作成を自動化しませんか?