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")
print(deepcopy_honda.colors, \
      honda.colors)
 
copy_honda = copy(honda)
 
copy_honda.colors.append("Green")
print(copy_honda.colors, \
      honda.colors)
Resultado: 
['Vermelho', 'Azul', 'Verde'] ['Vermelho', 'Azul']
['Vermelho', 'Azul', 'Verde'] ['Vermelho', 'Azul', 'Verde']