Python Glossary English

все Python 3copyфункция

copy.copy()

поверхностная

Создаёт поверхностную копию объекта: новый объект, но вложенные объекты остаются общими.

Синтаксис

copy.copy(obj)

Для встроенных контейнеров это ровно то же, что list(a), a[:], dict(a) или a.copy() — отдельная функция нужна, чтобы копировать что угодно, включая экземпляры своих классов, не зная их типа. Для неизменяемых объектов (int, str, кортеж без изменяемых элементов) copy может вернуть тот же самый объект: копировать нечего. И помните, что копия экземпляра класса создаётся без вызова __init__ — просто переносится содержимое __dict__.

Примеры

import copy
a = [1, [2, 3]]
b = copy.copy(a)
b.append(4)
print(a) # → [1, [2, 3]]
b[1].append(99)
print(a) # → [1, [2, 3, 99]]  вложенный общий!
d = {'x': [1, 2]}
d2 = copy.copy(d)
d2['x'] is d['x'] # → True

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности