Skip to content

Commit a0378c7

Browse files
authored
Merge pull request #6 from MingxuanHu/fix-prototype
Fix Prototype
2 parents a5a2b87 + 7978728 commit a0378c7

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

src/Prototype/Conceptual/Output.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Adding elements to `shallow_copied_component`'s some_list_of_objects adds it to `component`'s some_list_of_objects.
22
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.
55
id(deep_copied_component.some_circular_ref.parent): 4429472784
66
id(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.

src/Prototype/Conceptual/main.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff 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 "

0 commit comments

Comments
 (0)