回答編集履歴
6
誤字修正
answer
CHANGED
@@ -22,8 +22,8 @@
|
|
22
22
|
後者のコードは `X` が1度 `0` になってから `1` に変化しています。
|
23
23
|
これが「副作用」です。
|
24
24
|
|
25
|
-
最近
|
25
|
+
最近プログラムを書くときに「副作用」を嫌傾向にある気がします。
|
26
|
-
副作用をあまり許さない言語として
|
26
|
+
「副作用」をあまり許さない言語として
|
27
27
|
Elixir や Elm などがあり、これを「関数型言語」と呼ばれるのを目にします。
|
28
28
|
|
29
29
|
なぜ「副作用」が嫌われる傾向にあるのかは、こちらに書きました。
|
5
誤字修正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
個人的には前者をオススメしたいです。
|
2
2
|
ちなみに、前者のコードに誤りがあるので、修正します。
|
3
3
|
```python
|
4
4
|
class Example():
|
4
誤字修正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
**個人的には** 前者を
|
1
|
+
**個人的には** 前者をオススメしたいです。
|
2
2
|
ちなみに、前者のコードに誤りがあるので、修正します。
|
3
3
|
```python
|
4
4
|
class Example():
|
3
誤字修正
answer
CHANGED
@@ -56,6 +56,8 @@
|
|
56
56
|
|
57
57
|
### staticmethod
|
58
58
|
`staticmethod` を使うと `self` を書かなくても動くようになります。
|
59
|
+
`staticmethod` は使えるときには積極的に使うのが
|
60
|
+
副作用が無いことを明示している点で望ましいと個人的に感じています。
|
59
61
|
```python
|
60
62
|
class Example():
|
61
63
|
def __init__(self):
|
2
誤字修正
answer
CHANGED
@@ -17,6 +17,7 @@
|
|
17
17
|
|
18
18
|
なぜなら後者は「副作用」を持っているからです。
|
19
19
|
副作用というのは、属性(インスタンス変数、またはクラス変数)を変化させることです。
|
20
|
+
* [Python の属性 - クラス変数とインスタンス変数ってなに?](https://python.ms/attribute/)
|
20
21
|
|
21
22
|
後者のコードは `X` が1度 `0` になってから `1` に変化しています。
|
22
23
|
これが「副作用」です。
|
1
誤字修正
answer
CHANGED
@@ -1,9 +1,6 @@
|
|
1
1
|
**個人的には** 前者を進めたいです。
|
2
2
|
ちなみに、前者のコードに誤りがあるので、修正します。
|
3
3
|
```python
|
4
|
-
#
|
5
|
-
# コピペで動きます。
|
6
|
-
#
|
7
4
|
class Example():
|
8
5
|
def __init__(self):
|
9
6
|
# self.X = setX() <--- self が無いです。
|
@@ -40,9 +37,6 @@
|
|
40
37
|
PEP 8 はキャメルケースではなくスネークケースです。
|
41
38
|
|
42
39
|
```python
|
43
|
-
#
|
44
|
-
# コピペで動きます。
|
45
|
-
#
|
46
40
|
class Example():
|
47
41
|
def __init__(self):
|
48
42
|
# self.X = self.setX()
|
@@ -62,9 +56,6 @@
|
|
62
56
|
### staticmethod
|
63
57
|
`staticmethod` を使うと `self` を書かなくても動くようになります。
|
64
58
|
```python
|
65
|
-
#
|
66
|
-
# コピペで動きます。
|
67
|
-
#
|
68
59
|
class Example():
|
69
60
|
def __init__(self):
|
70
61
|
# self.X = self.setX()
|