Quelles méthodes de copie d'objets connaissez-vous?
sobes.tech IA
Réponse de l'IA
Copie superficielle et profonde.
La copie superficielle (Shallow Copy) crée un nouvel objet, mais les références aux objets imbriqués restent les mêmes. Les modifications apportées aux objets imbriqués de l'objet original se refléteront également dans la copie, et vice versa.
La copie profonde (Deep Copy) crée une copie entièrement indépendante de l'objet, y compris la copie de tous les objets imbriqués. Les modifications apportées aux objets imbriqués de l'original n'affectent pas la copie.
Exemples d'implémentation (Python):
# Copie superficielle
import copy
original_list = [1, 2, [3, 4]]
shallow_copy_list = copy.copy(original_list)
# Modifier un objet imbriqué dans l'original affecte la copie
original_list[2][0] = 99
# shallow_copy_list devient maintenant [1, 2, [99, 4]]
# Copie profonde
import copy
original_list = [1, 2, [3, 4]]
deep_copy_list = copy.deepcopy(original_list)
# Modifier un objet imbriqué dans l'original n'affecte pas la copie
original_list[2][0] = 99
# deep_copy_list reste [1, 2, [3, 4]]
Le choix de la méthode dépend de la structure de l'objet et de la tâche. Pour des objets simples sans références imbriquées, la copie superficielle suffit. Pour des objets avec une structure complexe ou lorsque l'indépendance totale de la copie par rapport à l'original est requise, la copie profonde est utilisée.