Maison > développement back-end > Tutoriel Python > Comment créer des copies d'objets véritablement indépendantes en Python ?

Comment créer des copies d'objets véritablement indépendantes en Python ?

DDD
Libérer: 2024-11-03 17:05:03
original
935 Les gens l'ont consulté

How to Create Truly Independent Copies of Objects in Python?

Duplication d'objets en Python : un guide complet

La création de copies d'objets est une tâche fondamentale dans la programmation Python, en particulier lorsqu'il s'agit de données complexes structures. Cet article explore les subtilités de la copie d'objets en Python, en se concentrant particulièrement sur la création d'objets indépendants qui ne sont pas affectés par les modifications apportées à l'original.

Copie superficielle et approfondie

En Python, il existe deux méthodes principales pour copier des objets : la copie superficielle et la copie approfondie. La copie superficielle crée un nouvel objet qui fait référence aux mêmes champs immuables (par exemple, des entiers, des chaînes) que l'original, mais crée de nouvelles copies de champs mutables (par exemple, des listes, des dictionnaires).

Par exemple, considérez ce qui suit extrait de code :

<code class="python">original_list = [1, 2, 3]
new_list = original_list[:]  # Shallow copy</code>
Copier après la connexion

Bien que new_list et original_list semblent être des objets distincts, toute modification apportée à une liste sera reflétée dans l'autre, car elles font toutes deux référence aux mêmes données sous-jacentes.

Créer des objets entièrement indépendants

Pour créer des objets véritablement indépendants, nous devons recourir à la copie approfondie. Cela implique de créer une nouvelle copie de chaque champ, y compris les structures mutables imbriquées. La fonction copy.deepcopy() de Python fournit cette fonctionnalité.

Modifions notre exemple précédent :

<code class="python">import copy

original_list = [1, 2, [4, 5]]
new_list = copy.deepcopy(original_list)</code>
Copier après la connexion

Maintenant, si nous apportons une modification à new_list, cela n'affectera pas original_list :

<code class="python">new_list[2].append(6)
print(original_list)  # Output: [1, 2, [4, 5]]
print(new_list)       # Output: [1, 2, [4, 5, 6]]</code>
Copier après la connexion

Conclusion

En tirant parti de la fonction copy.deepcopy(), les programmeurs peuvent créer des copies d'objets totalement indépendantes, garantissant que les modifications apportées à l'un n'affectent pas l'autre. . Comprendre la différence entre la copie superficielle et profonde est crucial pour une manipulation efficace des objets en Python.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal