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 11Adding elements to `shallow_copied_component`'s some_list_of_objects adds it to `component`'s some_list_of_objects.
22Changing 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.
55id(deep_copied_component.some_circular_ref.parent): 4429472784
66id(deep_copied_component.some_circular_ref.parent.some_circular_ref.parent): 4429472784
77^^ 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={}):
6464 new = self .__class__ (
6565 self .some_int , some_list_of_objects , some_circular_ref
6666 )
67- new .__dict__ . update (self .__dict__ )
67+ new .__dict__ = copy . deepcopy (self .__dict__ , memo )
6868
6969 return new
7070
@@ -113,8 +113,8 @@ def __deepcopy__(self, memo={}):
113113
114114 # Let's change the list in deep_copied_component and see if it changes in
115115 # 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" :
118118 print (
119119 "Adding elements to `deep_copied_component`'s "
120120 "some_list_of_objects adds it to `component`'s "
You can’t perform that action at this time.
0 commit comments