回答編集履歴

3

コードのミスを訂正/説明補足

2018/02/28 05:19

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

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

コードのコメントを変更

2018/02/28 05:19

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

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

コードのミスを変更

2018/02/28 03:53

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -68,6 +68,6 @@
68
68
 
69
69
  print(a.y) # 3 (同じ名前のインスタンス変数がなければ確かにクラス変数にアクセスできる)
70
70
 
71
- print(A.y) # 4 (でもクラス共通の変数なんだからクラス名でアクセスした方がいいんじゃないかな)
71
+ print(A.y) # 3 (でもクラス共通の変数なんだからクラス名でアクセスした方がいいんじゃないかな)
72
72
 
73
73
  ```