MyTetra Share
Делитесь знаниями!
Копия объекта в Python
Время создания: 08.05.2018 20:46
Автор: br0ke
Текстовые метки: python, copy, deep, deepcopy
Раздел: Информационные технологии - Python
Запись: and-semakin/mytetra_data/master/base/1525794395646duy97wn/text.html на raw.githubusercontent.com

copy.copy(x) -- поверхностная копия x -- создает новый составной объект, и затем (по мере возможности) вставляет в него ссылки на объекты, находящиеся в оригинале

copy.deepcopy(x) -- полная копия x -- создает новый составной объект, и затем рекурсивно вставляет в него копии объектов, находящихся в оригинале.


Если объект невозможно скопировать, то возникает ошибка copy.error.


>>> import copy


>>> test_1 = [1, 2, 3, [1, 2, 3]]

>>> test_copy = copy.copy(test_1)

>>> print(test_1, test_copy)

[1, 2, 3, [1, 2, 3]] [1, 2, 3, [1, 2, 3]]

>>> test_copy[3].append(4)

>>> print(test_1, test_copy)

[1, 2, 3, [1, 2, 3, 4]] [1, 2, 3, [1, 2, 3, 4]]


>>> test_1 = [1, 2, 3, [1, 2, 3]]

>>> test_deepcopy = copy.deepcopy(test_1)

>>> test_deepcopy[3].append(4)

>>> print(test_1, test_deepcopy)

[1, 2, 3, [1, 2, 3]] [1, 2, 3, [1, 2, 3, 4]]


Управлять копированием можно переопределением методов __copy__() и __deepcopy__() у объекта.

Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования