Diferença entre cópia superficial e profunda de uma classe
Cópia superficial: a repetição superficial é mais rápida. No entanto, é “preguiçoso”, ele lida com ponteiros e referências. Em vez de criar uma cópia contemporânea do conhecimento específico para o qual o ponteiro aponta, ele simplesmente copia o preço do ponteiro. Assim, cada um o primeiro e, portanto, a cópia podem ter ponteiros que fazem referência ao conhecimento subjacente constante.
Cópia profunda: a repetição profunda realmente clona os dados subjacentes. Não é compartilhado entre o primeiro e, portanto, a cópia.
Abaixo está a diferença tabular entre a cópia superficial e a cópia profunda:
Cópia Rasa | Deep Copy |
---|---|
O Shallow Copy armazena as referências de objetos ao endereço de memória original. | A cópia profunda armazena cópias do valor do objeto. |
A cópia superficial reflete as alterações feitas no objeto novo / copiado no objeto original. | A cópia profunda não reflete as alterações feitas no objeto novo / copiado no objeto original. |
O Shallow Copy armazena a cópia do objeto original e aponta as referências aos objetos. | A cópia profunda armazena a cópia do objeto original e também copia recursivamente os objetos. |
A cópia superficial é mais rápida. | A cópia profunda é comparativamente mais lenta. |
Abaixo está o programa para explicar a cópia superficial e profunda da aula.
from
copy
import
copy, deepcopy
class
Car:
def
__init__(
self
, name, colors):
self
.name
=
name
self
.colors
=
colors
honda
=
Car(
"Honda"
, [
"Red"
,
"Blue"
])
deepcopy_honda
=
deepcopy(honda)
deepcopy_honda.colors.append(
"Green"
)
(deepcopy_honda.colors, \
honda.colors)
copy_honda
=
copy(honda)
copy_honda.colors.append(
"Green"
)
(copy_honda.colors, \
honda.colors)
['Vermelho', 'Azul', 'Verde'] ['Vermelho', 'Azul'] ['Vermelho', 'Azul', 'Verde'] ['Vermelho', 'Azul', 'Verde']
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva