Карточка Middle Типы, изменяемость и сравнение обновлено
copy против deepcopy
Вопрос
Чем copy.copy отличается от copy.deepcopy?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
copy создаёт новый внешний объект и кладёт в него ссылки на те же вложенные объекты. deepcopy рекурсивно копирует вложенные объекты, ведёт словарь memo, чтобы правильно копировать циклические ссылки.
Ответ
copy создаёт новый внешний объект и кладёт в него ссылки на те же вложенные объекты. deepcopy рекурсивно копирует вложенные объекты, ведёт словарь memo, чтобы правильно копировать циклические ссылки.
Разбор
Свои классы управляют копированием через __copy__ и __deepcopy__. Глубокая копия заметно медленнее и может скопировать то, что копировать не нужно (соединения, кеши).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.