File tree Expand file tree Collapse file tree 2 files changed +5
-5
lines changed Expand file tree Collapse file tree 2 files changed +5
-5
lines changed Original file line number Diff line number Diff line change 1
1
Adding elements to `shallow_copied_component`'s some_list_of_objects adds it to `component`'s some_list_of_objects.
2
2
Changing objects in the `component`'s some_list_of_objects changes that object in `shallow_copied_component`'s some_list_of_objects.
3
- Adding elements to `deep_copied_component`'s some_list_of_objects adds it to `component`'s some_list_of_objects.
4
- Changing objects in the `component`'s some_list_of_objects changes that object in `deep_copied_component`'s some_list_of_objects.
3
+ Adding elements to `deep_copied_component`'s some_list_of_objects doesn't add it to `component`'s some_list_of_objects.
4
+ Changing objects in the `component`'s some_list_of_objects doesn't change that object in `deep_copied_component`'s some_list_of_objects.
5
5
id(deep_copied_component.some_circular_ref.parent): 4429472784
6
6
id(deep_copied_component.some_circular_ref.parent.some_circular_ref.parent): 4429472784
7
7
^^ This shows that deepcopied objects contain same reference, they are not cloned repeatedly.
Original file line number Diff line number Diff line change @@ -64,7 +64,7 @@ def __deepcopy__(self, memo={}):
64
64
new = self .__class__ (
65
65
self .some_int , some_list_of_objects , some_circular_ref
66
66
)
67
- new .__dict__ . update (self .__dict__ )
67
+ new .__dict__ = copy . deepcopy (self .__dict__ , memo )
68
68
69
69
return new
70
70
@@ -113,8 +113,8 @@ def __deepcopy__(self, memo={}):
113
113
114
114
# Let's change the list in deep_copied_component and see if it changes in
115
115
# component.
116
- deep_copied_component .some_list_of_objects .append ("another object" )
117
- if component .some_list_of_objects [- 1 ] == "another object" :
116
+ deep_copied_component .some_list_of_objects .append ("one more object" )
117
+ if component .some_list_of_objects [- 1 ] == "one more object" :
118
118
print (
119
119
"Adding elements to `deep_copied_component`'s "
120
120
"some_list_of_objects adds it to `component`'s "
You can’t perform that action at this time.
0 commit comments