No.157
super()の使い方がピンと来なかったのは、Python2とPython3で記述の仕方が少し違った為でした。ネットにはこの辺りが区別されてない情報が多いようです。
super()は継承で呼び出すclass(親class)の初期化を実行するものです。親classに def __init__(self): があれば必須です。無ければ不要?。渡す引数があればsuper().__init__(引数)とします。引数の考え方書き方は普通にインスタンスを作る場合と同じです。ここにselfは不要ってこと。
継承の考え方はC言語のincludeと似たようなものです。別classであってもここに書いてあるのと同じ扱いが出来ます。違いは、変数や関数に同じ名称がある場合にエラーにならず、親classを呼び出している子classの記述が優先されます。
ということらしい。
結局は「同じ様なこと何度も書きたかねー」「ここをちょっと変更して使えたらなー」に応えた手段らしい。
すっごい崇高な指向ではなく、ベッタベタに楽したい指向だわな。
Pythonをデザインした人は「楽するために努力するタイプ」らしい。親近感がわきます。
#Python
super()は継承で呼び出すclass(親class)の初期化を実行するものです。親classに def __init__(self): があれば必須です。無ければ不要?。渡す引数があればsuper().__init__(引数)とします。引数の考え方書き方は普通にインスタンスを作る場合と同じです。ここにselfは不要ってこと。
継承の考え方はC言語のincludeと似たようなものです。別classであってもここに書いてあるのと同じ扱いが出来ます。違いは、変数や関数に同じ名称がある場合にエラーにならず、親classを呼び出している子classの記述が優先されます。
ということらしい。
結局は「同じ様なこと何度も書きたかねー」「ここをちょっと変更して使えたらなー」に応えた手段らしい。
すっごい崇高な指向ではなく、ベッタベタに楽したい指向だわな。
Pythonをデザインした人は「楽するために努力するタイプ」らしい。親近感がわきます。
#Python