Карточка Middle Типы, изменяемость и сравнение обновлено

copy против deepcopy

Вопрос

Чем copy.copy отличается от copy.deepcopy?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

copy создаёт новый внешний объект и кладёт в него ссылки на те же вложенные объекты. deepcopy рекурсивно копирует вложенные объекты, ведёт словарь memo, чтобы правильно копировать циклические ссылки.

Ответ

copy создаёт новый внешний объект и кладёт в него ссылки на те же вложенные объекты. deepcopy рекурсивно копирует вложенные объекты, ведёт словарь memo, чтобы правильно копировать циклические ссылки.

Разбор

Свои классы управляют копированием через __copy__ и __deepcopy__. Глубокая копия заметно медленнее и может скопировать то, что копировать не нужно (соединения, кеши).

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме