Python `dataclass.copy()` Method
The `copy()` method is available for data classes in Python. It is used to create a shallow copy of the data class object. A shallow copy means that the copying process creates a new data class object but does not clone the contents of the object i.e., it creates a new object with references to the original object’s attributes.
Here is an example to demonstrate the usage of `copy()` method:
import dataclasses
@dataclasses.dataclass
class Person:
name: str
age: int
# Create a Person object
john = Person("John", 25)
# Create a shallow copy of the object
john_copy = john.copy()
# Verify the contents of the original and copied objects
print(john.name, john.age) # Output: John 25
print(john_copy.name, john_copy.age) # Output: John 25
# Modify the copied object
john_copy.name = "John Doe"
john_copy.age = 30
# Verify the modifications
print(john.name, john.age) # Output: John 25
print(john_copy.name, john_copy.age) # Output: John Doe 30
In the above example, we define a `Person` data class with attributes `name` and `age`. We create a `john` object of the `Person` class and then use the `copy()` method to create a shallow copy of the `john` object, which is assigned to `john_copy`. Both the original and copied objects have the same values for their attributes.
Later, we modify the `name` and `age` attributes of the copied object (`john_copy`) and observe that the modifications do not affect the original object (`john`). This behavior is because the shallow copy creates a new object with references to the original object’s attributes, so any changes made to the attributes of the copied object will not reflect in the original object.