回答編集履歴

6

改行追加

2022/11/04 10:24

投稿

shiracamus
shiracamus

スコア5406

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>, 'c': <__main__.test object at 0x7f233f506640>}
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

構成図: の位置修正

2022/11/04 10:17

投稿

shiracamus
shiracamus

スコア5406

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

図の内容修正

2022/11/04 10:15

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  これは、インスタンス変数 `data2` を定義して、`d` を代入します。クラス変数の`data2`は使用しません。
21
21
 
22
- ![メモリ構成図](https://ddjkaamml8q8x.cloudfront.net/questions/2022-11-04/9e631cd2-7814-476a-8766-5c03aa527651.png)
22
+ ![ージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-11-04/f944e9c3-4d70-4820-b410-29b5ef82b378.png)
23
23
 
24
24
  各変数辞書の内容確認
25
25
 

3

インスタンス変数の値が違っていたので修正

2022/11/04 10:14

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  これは、インスタンス変数 `data2` を定義して、`d` を代入します。クラス変数の`data2`は使用しません。
21
21
 
22
- ![メモリ構成図](https://ddjkaamml8q8x.cloudfront.net/questions/2022-11-04/629f729f-1339-490f-b04d-1fe8c3cea1e6.png)
22
+ ![メモリ構成図](https://ddjkaamml8q8x.cloudfront.net/questions/2022-11-04/9e631cd2-7814-476a-8766-5c03aa527651.png)
23
23
 
24
24
  各変数辞書の内容確認
25
25
 

2

メモリ構成図追記

2022/11/04 10:11

投稿

shiracamus
shiracamus

スコア5406

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

エスケープ追加

2022/11/04 09:48

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -9,7 +9,7 @@
9
9
  self.data.append(d)
10
10
  ```
11
11
 
12
- これは、`self.data` でインスタンス変数`data`を参照していますが、インスタンスに変数がないのでクラス変数の`data`を取り出します。そして `.append(0)` でクラス変数の data に要素を追加します。
12
+ これは、`self.data` でインスタンス変数`data`を参照していますが、インスタンスに変数がないのでクラス変数の`data`を取り出します。そして `.append(0)` でクラス変数の`data`に要素を追加します。
13
13
 
14
14
  ```python
15
15
  self.data2 = d