Замена значений в датаклассе в ООП в Python
Чтобы получить новый объект с частью
измененных полей, не трогая старый,
удобно пользоваться функцией
replace из модуля
dataclasses.
Давайте сделаем класс User:
from dataclasses import dataclass, replace
@dataclass
class User:
name: str
age: int
Создадим объект и получим его копию с другим возрастом:
user = User('john', 25)
user2 = replace(user, age=30)
print(user.age) # 25
print(user2.age) # 30
Исходный объект не меняется.
Меняются только те поля, которые
переданы в replace.
Сделайте датакласс Employee
с полями name и salary.
Создайте объект и через replace
получите второй с другой зарплатой.
Убедитесь, что у первого зарплата
не изменилась.