回答編集履歴
2
d
answer
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
self.a = None
|
16
16
|
|
17
17
|
def func():
|
18
|
-
self.b = 1 # ここで初めて属性
|
18
|
+
self.b = 1 # ここで初めて属性 b が定義される
|
19
19
|
|
20
20
|
inst = MyClass()
|
21
21
|
|
1
d
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
> 初期化をしていますが、なぜなのでしょうか?
|
2
2
|
|
3
|
-
属性はオブジェクトを作成した段階で定義しておくことが、設計上好ましいからになります。
|
3
|
+
属性はオブジェクトを作成した段階で定義しておくことが、設計上好ましいからという理由になります。
|
4
4
|
今回の場合、x, y という属性は MulLayer が持っているべき属性なので、`__init__(self)` 内で定義します。その時点でいれるべき値がない場合は None で初期化する場合が多いです。
|
5
5
|
コードの可読性の面でもいろんなメソッド内で属性が定義されているよりも `__init__(self)` 内でそのクラスがもつ属性がまとめて定義されていたほうがわかりやすいです。
|
6
6
|
|