Maison >développement back-end >Tutoriel Python >Types immuables et types mutables en programmation : quelle est la différence ?

Types immuables et types mutables en programmation : quelle est la différence ?

DDD
DDDoriginal
2024-12-21 19:33:11394parcourir

Immutable vs. Mutable Types in Programming: What's the Difference?

Types immuables et types mutables : comprendre la différence

Lorsque vous travaillez avec des données en programmation, il est essentiel de comprendre la distinction entre les types immuables et mutables . Les types immuables sont des objets dont la valeur ne peut pas être modifiée après leur création, tandis que les types mutables peuvent être modifiés sur place.

Comprendre les types immuables

Comme l'exemple avec RoundFloat class l'illustre, un type immuable est immuable car sa classe définit la méthode __new__(), qui crée une nouvelle instance de la classe sans modifier l'objet existant. Cela garantit que toute modification apportée à la valeur de l'objet est reflétée dans une nouvelle instance, laissant l'objet d'origine inchangé.

De même, la classe SortedKeyDict est considérée comme immuable en raison de l'utilisation de __new__() dans son constructeur. Il crée un nouvel objet en effaçant le dictionnaire d'entrée, créant ainsi un nouveau dictionnaire trié. Ce processus laisse le dictionnaire d'origine inchangé, préservant son immuabilité.

Caractéristiques des types mutables

Les types mutables, en revanche, ont des méthodes qui peuvent modifier l'objet dans lieu. Cela permet de modifier la valeur de l'objet sans créer une nouvelle instance. Par exemple, la classe SortedKeyDict_a a un exemple de méthode qui modifie l'objet en extrayant ses clés.

Le cas des listes et des dictionnaires

Les ensembles, comme les listes, sont mutables également les structures de données. Contrairement aux chaînes, transmettre un ensemble à la classe RoundFloat avec __new__() ne déclenchera pas d'erreur car les ensembles sont mutables.

La situation avec les dictionnaires est légèrement différente. Bien que les dictionnaires soient considérés comme mutables par défaut, la classe SortedKeyDict supprime cette mutabilité en utilisant __new__() pour effacer le dictionnaire d'entrée et en créer un nouveau, trié. Cela garantit que le dictionnaire original reste inchangé.

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!

Déclaration:
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