回答編集履歴
3
f
test
CHANGED
@@ -32,13 +32,11 @@
|
|
32
32
|
|
33
33
|
|
34
34
|
|
35
|
-
|
35
|
+
(狭義の)「コンストラクター」に該当するのは`__new__`になります。
|
36
36
|
|
37
|
-
|
37
|
+
(なお、`__init__`をコンストラクターというのは決して誤りではありません。同じ働きをするものなので。)
|
38
38
|
|
39
|
-
`a=Foo()`というコードによって内部的に自動的に`__new__`が呼び出されるからです。
|
40
|
-
|
41
|
-
こ
|
39
|
+
(通常`__new__`をコードで扱うことはあまりありません。singletonパターン(ここでは詳細は書きませんが)をつくるとき等、限られた場面で使われることはあります)
|
42
40
|
|
43
41
|
|
44
42
|
|
2
f
test
CHANGED
@@ -64,7 +64,7 @@
|
|
64
64
|
|
65
65
|
|
66
66
|
|
67
|
-
あと、Javaでは継承先で、継承元のコンストラクタを自動で
|
67
|
+
あと、Javaでは継承先で、継承元のコンストラクタを自動で呼んでくれますが、pythonは継承先で継承元の`__init__`は自動では呼ばれません。
|
68
68
|
|
69
69
|
|
70
70
|
|
1
f
test
CHANGED
@@ -64,7 +64,11 @@
|
|
64
64
|
|
65
65
|
|
66
66
|
|
67
|
-
あと、Java
|
67
|
+
あと、Javaでは継承先で、継承元のコンストラクタを自動では呼んでくれますが、pythonは継承先で継承元の___init__は自動では呼ばれません。
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
これも`__init__`が他のコンストラクタとは異なっている特徴かもしれません。
|
68
72
|
|
69
73
|
|
70
74
|
|