La différence entre affectation, copie superficielle et copie profonde en Python


Le texte et les images de la préface proviennent d'Internet et sont uniquement à des fins d'apprentissage et de communication. Ils n'ont aucune utilisation commerciale. Le droit d'auteur appartient à l'auteur d'origine. Si vous avez des questions, veuillez nous contacter à temps pour le traitement.

PS: Si vous avez besoin de matériel d'apprentissage Python, vous pouvez cliquer sur le lien ci-dessous pour obtenir http://t.cn/A6Zvjdun

Conclusion:
affectation: il suffit de pointer la variable vers l'objet d'origine, qui est en fait une référence (alias) de l'objet;
copie superficielle (copie): la méthode de copie du module de copie, seul l'objet parent est copié, pas les objets enfants internes de l'objet;
copie profonde (deepcopy): La méthode deepcopy du module de copie copie complètement l'objet parent et ses objets enfants.

Exemples:

 

Copier des objets variables:

 

 

Copiez les résultats d'exécution des objets variables:

On peut voir que lors de la copie d'un objet variable, l'affectation ne génère pas un nouvel objet, mais pointe simplement la variable vers l'objet d'origine, et la copie superficielle et la copie profonde génèrent un nouvel objet, mais la copie superficielle n'a pas d'objets enfants de l'objet copié, donc Après avoir modifié la valeur du sous-objet, la valeur du nouvel objet généré par la copie superficielle a également changé, tandis que le nouvel objet généré par la copie profonde n'a pas changé avec la modification du sous-objet de l'objet copié.

 

 

Copiez des objets immuables:

 

 

Copiez les résultats d'exécution des objets immuables:

En comparant les résultats d'exécution de la copie d'objets variables ci-dessus, on peut voir que lors de la copie d'objets immuables, la différence est que la copie superficielle ne génère pas de nouveaux objets, mais au lieu d'une affectation, elle pointe directement vers l'objet d'origine.

Si vous voulez apprendre Python ou apprenez Python, il existe de nombreux didacticiels Python, mais est-ce le dernier? Peut-être que vous avez appris quelque chose que les gens auraient appris il y a deux ans, et ici je partage une vague des derniers tutoriels Python pour 2020. Comment l'obtenir, vous pouvez l'obtenir gratuitement en modifiant les "Informations" de la lettre privée!

Je suppose que tu aimes

Origine www.cnblogs.com/python0921/p/12698063.html
conseillé
Classement