回答編集履歴

1

追記

2018/10/28 13:13

投稿

LouiS0616
LouiS0616

スコア35668

test CHANGED
@@ -1,3 +1,55 @@
1
1
  後者はクラス変数なので、インスタンス間で共有されます。
2
2
 
3
3
  また、Sample_2.aと書いてもアクセスできます。
4
+
5
+ ```Python
6
+
7
+ class Sample_2():
8
+
9
+ clsvar = "hoge"
10
+
11
+
12
+
13
+ def __init__(self):
14
+
15
+ self.instvar = "spam"
16
+
17
+
18
+
19
+ def __str__(self):
20
+
21
+ return f'{self.clsvar}{self.instvar}'
22
+
23
+
24
+
25
+ inst1 = Sample_2()
26
+
27
+ inst2 = Sample_2()
28
+
29
+
30
+
31
+ print(inst1, inst2)
32
+
33
+
34
+
35
+ Sample_2.clsvar = 'piyo' # inst1.clsvar = 'piyo' と書くと、インスタンス変数を新たに生成してしまう
36
+
37
+ inst1.instvar = 'ham'
38
+
39
+
40
+
41
+ print(inst1, inst2)
42
+
43
+ ```
44
+
45
+
46
+
47
+ **実行結果** [Wandbox](https://wandbox.org/permlink/HlXv8gae8E08Vx0u)
48
+
49
+ ```
50
+
51
+ hogespam hogespam
52
+
53
+ piyoham piyospam
54
+
55
+ ```