Kuroyagi飼育日誌

学んだことの備忘録

Pythonの基本~super()の使い方~

以前はsuperによるスーパークラスの継承について基本を学びました。しかし!さっそく楽手うしたものとは違う方法が現れたので、それについて学習します。
 
 
 
今回現れた表現は…
 
 
 
super(subclass名, self, argument).__init__(argument)
 
 
 
という形式です。以下のちょうど良さそうな記事があったので参考にします。
 
 
 
uxmilk.jp
 
 
 



結論としてはpython3系ではsuperの引数は省略出来るようになっているようです。引用記事ではそのこと以外にスーパークラスのメソッド呼び出しについても書いてあります。
 
 
 
重要なのはスーパークラスのメソッドはsuper()で呼び出すのが推奨されているということです。ごり押しでsuperclass.method()のように使うことが出来るようですがsuper()が推奨ということを覚えておきます。理由はまだ分からないのですが、そのうち分かるでしょう!笑
 
 
 
一応、今後参考にする記事によってはpython2系とpython3系でいったりきたりする可能性もあるので形式を以下にまとめておきます。
 
 
 
■python2系
self(Subclass, self, argument).method(self, argument)


■python3系
self().method(argument)



上記が同じことを意味しているので、バージョン違いのサンプルを見るときには注意したいと思います。