Code Explanation:
1. Importing the copy Module
import copy
We import Python’s built-in copy module.
It provides two important copy operations:
copy.copy() → shallow copy
copy.deepcopy() → deep copy
2. Defining the Class
class Data:
A class named Data is being created.
It will store a list as attribute.
3. Constructor Method (__init__)
def __init__(self):
self.lst = [1]
__init__ runs when an object is created.
It creates an instance attribute lst, assigned to a list [1].
Important point:
Lists are mutable objects, which means they can be changed after creation.
4. Creating the First Object
d1 = Data()
A Data object named d1 is created.
Inside d1, we now have:
d1.lst → [1]
5. Making a Shallow Copy
d2 = copy.copy(d1)
copy.copy(d1) creates a shallow copy of d1.
For a shallow copy:
The outer object is copied, but inner mutable objects are shared.
So:
d1 and d2 are two different objects
but both point to the same list in memory
Meaning:
d1.lst and d2.lst refer to the SAME list
6. Modifying the List via d1
d1.lst.append(2)
We append 2 into the list inside d1.
Because the list is shared, the same change affects d2.lst.
Now the shared list becomes:
[1, 2]
7. Printing from d2
print(d2.lst)
What does it print?
Since d2.lst points to the same modified list,
the output will be:
[1, 2]
Final Output
[1, 2]
.png)

0 Comments:
Post a Comment