Maison > Article > développement back-end > Quelle est la différence entre la copie superficielle et la copie approfondie en Python ?
Copier des objets en Python
Créer une copie indépendante d'un objet est une tâche courante en programmation. En Python, il existe deux manières principales de copier un objet : la copie superficielle et la copie approfondie.
Copie superficielle
Le mécanisme de copie par défaut de Python est la copie superficielle. Cela signifie qu'un nouvel objet est créé avec une référence aux mêmes champs que l'objet d'origine. Toute modification apportée aux champs du nouvel objet sera également reflétée dans l'objet d'origine.
Copie approfondie
La copie approfondie, en revanche, crée un nouveau objet avec des copies séparées des champs de l’objet d’origine. Cela signifie que toute modification apportée aux champs du nouvel objet n'affectera pas l'objet d'origine.
Pour obtenir une copie entièrement indépendante et approfondie d'un objet en Python, vous pouvez utiliser la copie Fonction .deepcopy(). Voici un exemple :
<code class="python">import copy # Original object obj = { "name": "Alice", "age": 20 } # Create a shallow copy shallow_copy = obj # Create a deep copy deep_copy = copy.deepcopy(obj) # Modify the shallow copy shallow_copy["name"] = "Bob" # Print the original and deep copy print(obj) # Output: {'name': 'Bob', 'age': 20} print(deep_copy) # Output: {'name': 'Alice', 'age': 20}</code>
Comme vous pouvez le voir, le deep_copy conserve les valeurs d'origine de l'objet, tandis que leshallow_copy est affecté par les modifications apportées à l'objet d'origine.
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!