回答編集履歴

5

コード追記

2020/05/17 06:22

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -54,4 +54,8 @@
54
54
 
55
55
  {'id': 'title', 'username': 'test_user'}
56
56
 
57
+ >>> print(threads[0])
58
+
59
+ {'id': 'title'}
60
+
57
61
  ```

4

辞書破棄コード追記

2020/05/17 06:22

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -17,3 +17,41 @@
17
17
 
18
18
 
19
19
  と変更してみたら結果はどうなりますか?
20
+
21
+
22
+
23
+ updateした辞書データが破棄される状況は、これで伝わるでしょうか?
24
+
25
+
26
+
27
+ ```python
28
+
29
+ >>> class Sample:
30
+
31
+ ... def __getitem__(self, index):
32
+
33
+ ... return {'id': 'title'}
34
+
35
+ ...
36
+
37
+ >>> threads = Sample()
38
+
39
+ >>> print(threads[0])
40
+
41
+ {'id': 'title'}
42
+
43
+ >>> threads[0].update({'username': 'test_user'})
44
+
45
+ >>> print(threads[0])
46
+
47
+ {'id': 'title'}
48
+
49
+ >>> log = threads[0]
50
+
51
+ >>> log.update({'username': 'test_user'})
52
+
53
+ >>> print(log)
54
+
55
+ {'id': 'title', 'username': 'test_user'}
56
+
57
+ ```

3

コード変更

2020/05/17 06:16

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ```python
8
8
 
9
- log = threads[0]
9
+ log = dict(threads[0])
10
10
 
11
11
  log.update(username_dicts[0])
12
12
 

2

コード修正

2020/05/17 04:29

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ```python
8
8
 
9
- log = dict(threads[0])
9
+ log = threads[0]
10
10
 
11
11
  log.update(username_dicts[0])
12
12
 

1

説明変更

2020/05/17 04:28

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,6 +1,6 @@
1
1
  `threads[0]` は、`threads.__getitem__(0)` というメソッド呼び出しをしています。
2
2
 
3
- メソッドの中で毎回インスンスを生成して返しているのであれば、updateした辞書はすぐに破棄されてしまいます。
3
+ メソッドの中で毎回辞書データを生成して返しているのであれば、updateした辞書はすぐに破棄されてしまいます。
4
4
 
5
5
 
6
6