回答編集履歴
1
オーバーライドについて追記
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__()` で親クラスのコンストラクタを実行しつつ、追加処理を行うといったチョイ足しのときに使う場合が多いです。
|