Потому что вы не всегда можете контролировать классы, которые вы используете так, как вы их определяете. В качестве одного из примеров они могут быть программами на C, имеющими привязки Python (например, GTK, openalpr, части ядра). Не говоря уже о том, что даже если вы взяли стороннюю библиотеку и добавили методы копирования в каждый класс, как вы собираетесь встраивать это в управление зависимостями?
ел бы создать копию объекта. Я хочу, чтобы новый объект обладал всеми свойствами старого объекта (значения полей). Но я хочу иметь независимые объекты. Таким образом, если я изменю значения полей нового объекта, на старый объект это не должно повлиять.