回答編集履歴
6
改行追加
test
CHANGED
@@ -37,7 +37,8 @@
|
|
37
37
|
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>,
|
38
38
|
'test': <class '__main__.test'>,
|
39
39
|
'a': <__main__.test object at 0x7f233f5d0b80>,
|
40
|
-
'b': <__main__.test object at 0x7f233f4fd4c0>,
|
40
|
+
'b': <__main__.test object at 0x7f233f4fd4c0>,
|
41
|
+
'c': <__main__.test object at 0x7f233f506640>}
|
41
42
|
>>> vars(test)
|
42
43
|
mappingproxy({'__module__': '__main__',
|
43
44
|
'__init__': <function test.__init__ at 0x7f233f4c0310>,
|
5
構成図: の位置修正
test
CHANGED
@@ -4,8 +4,6 @@
|
|
4
4
|
```
|
5
5
|
|
6
6
|
ここに書いた変数はクラス変数で、インスタンス間で共有されます。
|
7
|
-
|
8
|
-
メモリ構成図:
|
9
7
|
|
10
8
|
```python
|
11
9
|
self.data.append(d)
|
@@ -19,6 +17,7 @@
|
|
19
17
|
|
20
18
|
これは、インスタンス変数 `data2` を定義して、`d` を代入します。クラス変数の`data2`は使用しません。
|
21
19
|
|
20
|
+
メモリ構成図:
|
22
21
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-11-04/f944e9c3-4d70-4820-b410-29b5ef82b378.png)
|
23
22
|
|
24
23
|
各変数辞書の内容確認
|
4
図の内容修正
test
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
|
20
20
|
これは、インスタンス変数 `data2` を定義して、`d` を代入します。クラス変数の`data2`は使用しません。
|
21
21
|
|
22
|
-
![メ
|
22
|
+
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-11-04/f944e9c3-4d70-4820-b410-29b5ef82b378.png)
|
23
23
|
|
24
24
|
各変数辞書の内容確認
|
25
25
|
|
3
インスタンス変数の値が違っていたので修正
test
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
|
20
20
|
これは、インスタンス変数 `data2` を定義して、`d` を代入します。クラス変数の`data2`は使用しません。
|
21
21
|
|
22
|
-
![メモリ構成図](https://ddjkaamml8q8x.cloudfront.net/questions/2022-11-04/62
|
22
|
+
![メモリ構成図](https://ddjkaamml8q8x.cloudfront.net/questions/2022-11-04/9e631cd2-7814-476a-8766-5c03aa527651.png)
|
23
23
|
|
24
24
|
各変数辞書の内容確認
|
25
25
|
|
2
メモリ構成図追記
test
CHANGED
@@ -4,6 +4,8 @@
|
|
4
4
|
```
|
5
5
|
|
6
6
|
ここに書いた変数はクラス変数で、インスタンス間で共有されます。
|
7
|
+
|
8
|
+
メモリ構成図:
|
7
9
|
|
8
10
|
```python
|
9
11
|
self.data.append(d)
|
@@ -16,3 +18,37 @@
|
|
16
18
|
```
|
17
19
|
|
18
20
|
これは、インスタンス変数 `data2` を定義して、`d` を代入します。クラス変数の`data2`は使用しません。
|
21
|
+
|
22
|
+
![メモリ構成図](https://ddjkaamml8q8x.cloudfront.net/questions/2022-11-04/629f729f-1339-490f-b04d-1fe8c3cea1e6.png)
|
23
|
+
|
24
|
+
各変数辞書の内容確認
|
25
|
+
|
26
|
+
```python
|
27
|
+
>>> class test :
|
28
|
+
... def __init__(self, d):
|
29
|
+
... self.data.append(d)
|
30
|
+
se... self.data2 = d
|
31
|
+
... data = []
|
32
|
+
... data2 = 0
|
33
|
+
...
|
34
|
+
>>> a = test(1)
|
35
|
+
>>> b = test(2)
|
36
|
+
>>> c = test(3)
|
37
|
+
>>> globals()
|
38
|
+
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>,
|
39
|
+
'test': <class '__main__.test'>,
|
40
|
+
'a': <__main__.test object at 0x7f233f5d0b80>,
|
41
|
+
'b': <__main__.test object at 0x7f233f4fd4c0>, 'c': <__main__.test object at 0x7f233f506640>}
|
42
|
+
>>> vars(test)
|
43
|
+
mappingproxy({'__module__': '__main__',
|
44
|
+
'__init__': <function test.__init__ at 0x7f233f4c0310>,
|
45
|
+
'data': [1, 2, 3],
|
46
|
+
'data2': 0, '__dict__': <attribute '__dict__' of 'test' objects>, '__weakref__': <attribute '__weakref__' of 'test' objects>, '__doc__': None})
|
47
|
+
>>> vars(a)
|
48
|
+
{'data2': 1}
|
49
|
+
>>> vars(b)
|
50
|
+
{'data2': 2}
|
51
|
+
>>> vars(c)
|
52
|
+
{'data2': 3}
|
53
|
+
```
|
54
|
+
|
1
エスケープ追加
test
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
self.data.append(d)
|
10
10
|
```
|
11
11
|
|
12
|
-
これは、`self.data` でインスタンス変数`data`を参照していますが、インスタンスに変数がないのでクラス変数の`data`を取り出します。そして `.append(0)` でクラス変数の
|
12
|
+
これは、`self.data` でインスタンス変数`data`を参照していますが、インスタンスに変数がないのでクラス変数の`data`を取り出します。そして `.append(0)` でクラス変数の`data`に要素を追加します。
|
13
13
|
|
14
14
|
```python
|
15
15
|
self.data2 = d
|