Quelle est la différence entre la copie superficielle et la copie approfondie en Python ?

Susan Sarandon
Libérer: 2024-11-07 05:22:03
original
604 Les gens l'ont consulté

How do Shallow and Deep Copying Differ in 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>
Copier après la connexion

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!