回答編集履歴
3
コードのミスを訂正/説明補足
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
概ねよいとも言えますが、この表現は不正確かも知れません。`self.`を付けないというのは「変数名を直接指定してアクセスする場合」という意味と思いますが、そのようにアクセスする変数は「ローカル変数」の場合と「グローバル変数」の場合があります。
|
5
|
+
概ねよいとも言えますが、この表現は不正確かも知れません。`self.`を付けないというのは「変数名を直接指定してアクセスする場合」という意味と思いますが、そのようにアクセスする変数は「ローカル変数」の場合と「グローバル変数」の場合があります。関数(メソッド)終了時に破棄されるのは「ローカル変数」の方だけです。
|
6
6
|
|
7
7
|
|
8
8
|
|
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
print(g1) # g1はグローバル変数
|
24
24
|
|
25
|
-
global g
|
25
|
+
global g2
|
26
26
|
|
27
27
|
g2 = 3 # g2もグローバル変数
|
28
28
|
|
2
コードのコメントを変更
test
CHANGED
@@ -64,9 +64,9 @@
|
|
64
64
|
|
65
65
|
print(a.x) # 1 (インスタンス変数xが優先されている)
|
66
66
|
|
67
|
-
print(A.x) # 2 (でもクラス名を指定すればアクセスできる)
|
67
|
+
print(A.x) # 2 (でもクラス名を指定すればクラス変数の方をアクセスできる)
|
68
68
|
|
69
|
-
print(a.y) # 3 (同
|
69
|
+
print(a.y) # 3 (同名のインスタンス変数がなければインスタンスを介してクラス変数にアクセスできる)
|
70
70
|
|
71
71
|
print(A.y) # 3 (でもクラス共通の変数なんだからクラス名でアクセスした方がいいんじゃないかな)
|
72
72
|
|
1
コードのミスを変更
test
CHANGED
@@ -68,6 +68,6 @@
|
|
68
68
|
|
69
69
|
print(a.y) # 3 (同じ名前のインスタンス変数がなければ確かにクラス変数にアクセスできる)
|
70
70
|
|
71
|
-
print(A.y) #
|
71
|
+
print(A.y) # 3 (でもクラス共通の変数なんだからクラス名でアクセスした方がいいんじゃないかな)
|
72
72
|
|
73
73
|
```
|