Как функции копирования и глубокого копирования работают с аргументом байтового массива?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как функции копирования и глубокого копирования работают с аргументом байтового массива?

Сообщение Anonymous »

В документации говорится:

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

Похоже, что объект bytearray не является составным объектом (я так думаю, потому что, в отличие от объекта list, bytearray не содержит ссылок на другие объекты). Следовательно, copy.copy и copy.deepcopy дадут одинаковый результат для такого объекта. Но в документации не описываются подробности для этого конкретного типа данных. Я знаю, что для неизменяемых числовых объектов и объектов str (они, очевидно, тоже не являются составными) copy.copy и copy.deepcopy просто возвращают свой аргумент (здесь они не создают новый объект ).
Я провел несколько тестов с объектом bytearray obj и пришел к выводу, что для такого объекта функции copy.copy(obj) и copy.deepcopy(obj) создаст новый объект с тем же значением, что и исходный объект obj:

Код: Выделить всё

>>> import copy
>>> obj = bytearray(b'hello')
>>> obj2 = copy.copy(obj)
>>> obj3 = copy.deepcopy(obj)
>>> obj2 is obj; obj3 is obj
False
False
>>> obj2 == obj; obj3 == obj
True
True
Итак, можете ли вы сказать, что мой вывод верен (в частности, нет необходимости делать глубокую копию объекта bytearray — достаточно сделать поверхностную копию) копия)? Может быть, в этом процессе есть какие-то другие важные детали (создание поверхностной или глубокой копии объекта bytearray), о которых мне следует знать?

Подробнее здесь: https://stackoverflow.com/questions/791 ... y-argument
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»