38. Как сделать копию объекта? Как сделать глубокую копию объекта?

(прошу прощения, пост #37 задвоился из-за непонятной задержки Pikabu Publish Bot - пытаюсь это исправить!)

Типа копий бывает два: обычная-неглубокая (shallow) и глубокая (deep).

Разница между мелким и глубоким копированием актуальна только для составных объектов (объектов, содержащих другие объекты, такие как списки или экземпляры классов).:

- Неглубокая копия создает новый составной объект, а затем (насколько это возможно) вставляет в него ссылки на объекты, найденные в оригинале.

- Глубокая копия создает новый составной объект, а затем рекурсивно вставляет в него копии объектов, найденных в оригинале.

Ответ:

from copy import copy, deepcopy

a = [1,2,3,4,5,6]

my_copy = copy(a)

my_deep_copy = deepcopy(a)

>>> id(a)

140384823640320

>>> id(my_copy)

140384823640448

>>> id(my_deep_copy)

140384823572544


#сериал101, #38

Это кросспост из моего Telegram-канала "Не Ван Россум", где я прямо сейчас пишу сериал "101 вопрос про Python" с описанием подводных камней, неочевидностей и загвоздок.