Sobes.tech
Junior

¿Qué métodos de copia de objetos conoces?

sobes.tech AI

Respuesta de la IA

Copia superficial y profunda.

La copia superficial (Shallow Copy) crea un nuevo objeto, pero las referencias a los objetos anidados permanecen iguales. Los cambios en los objetos anidados del objeto original se reflejarán también en la copia, y viceversa.

La copia profunda (Deep Copy) crea una copia completamente independiente del objeto, incluyendo la copia de todos los objetos anidados. Los cambios en los objetos anidados del original no afectan a la copia.

Ejemplos de implementación (Python):

# Copia superficial
import copy

original_list = [1, 2, [3, 4]]
shallow_copy_list = copy.copy(original_list)

# Cambiar un objeto anidado en el original afecta a la copia
original_list[2][0] = 99
# shallow_copy_list ahora es [1, 2, [99, 4]]
# Copia profunda
import copy

original_list = [1, 2, [3, 4]]
deep_copy_list = copy.deepcopy(original_list)

# Cambiar un objeto anidado en el original no afecta a la copia
original_list[2][0] = 99
# deep_copy_list sigue siendo [1, 2, [3, 4]]

El método a elegir depende de la estructura del objeto y la tarea. Para objetos simples sin referencias anidadas, la copia superficial es suficiente. Para objetos con una estructura compleja o cuando se necesita una copia completamente independiente del original, se utiliza la copia profunda.