回答編集履歴

1

オーバーライドについて追記

2017/07/23 13:27

投稿

miyahan
miyahan

スコア3095

test CHANGED
@@ -1,5 +1,13 @@
1
- [`super()`](http://docs.python.jp/3.6/library/functions.html#super) は親クラスを呼び出すメソッドです。
1
+ [`super()`](http://docs.python.jp/3.6/library/functions.html#super) は親クラスをためのメソッドです。
2
2
 
3
3
 
4
4
 
5
5
  ですので `super().__init__()` は Prism クラスの `__init__` メソッドを実行しているだけです。
6
+
7
+
8
+
9
+ `__init__()` メソッドは親クラスの Prism でも、子クラスでの Cube でも定義されています。このような場合、子クラスのものが勝ち、上書きされます。これをオーバーライドと言います。でも、親クラスのメソッドや変数を呼んだり参照したいケースもでてきます。そのときに使うのが super() です。
10
+
11
+
12
+
13
+ 今回のコードでもそうですが、`super().__init__()` で親クラスのコンストラクタを実行しつつ、追加処理を行うといったチョイ足しのときに使う場合が多いです。