Maison > Article > développement back-end > Comment créer des copies indépendantes d'objets en Python ?
Énoncé du problème :
En Python, la création d'une copie d'un objet peut semble aussi simple que d'attribuer un objet à un autre. Cependant, cette simple affectation crée une référence à l'objet d'origine au lieu d'une nouvelle instance indépendante. Les modifications apportées à un objet se propageront à l'autre. Cela peut entraîner un comportement inattendu et des bugs potentiels.
Solution : Copie approfondie avec copy.deepcopy()
Pour créer une copie véritablement indépendante d'un objet, nous utilisons la fonction copy.deepcopy() du module de copie. Cette fonction effectue une copie complète, copiant de manière récursive tous les attributs et objets enfants de l'objet d'origine. La copie résultante est un objet indépendant avec son propre emplacement mémoire et ses propres valeurs.
Exemple :
<code class="python">import copy original_obj = {'name': 'Alice', 'age': 30} copy_obj = copy.deepcopy(original_obj) copy_obj['name'] = 'Bob' # Modify copy print(original_obj) # Output: {'name': 'Alice', 'age': 30} (Unchanged) print(copy_obj) # Output: {'name': 'Bob', 'age': 30} (Independent)</code>
Dans ce cas, copy_obj est véritablement indépendant de original_obj. La modification de l'un n'affecte pas l'autre. Cela vous permet de créer plusieurs objets avec des valeurs distinctes tout en partageant les mêmes propriétés initiales.
Remarque :
Copie superficielle, qui peut être réalisé avec copy.copy(), copie uniquement les valeurs de la structure de données, en laissant toutes les références contenues telles qu'elles étaient. La copie approfondie est généralement préférée pour garantir l'indépendance des objets.
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!