Python

Mutable vs. Objets immuables en Python

Mutable vs. Objets immuables en Python

Python est considéré comme le langage le plus étonnant car de nombreuses personnes le choisissent comme premier langage de programmation pour son élégance et sa simplicité. Reconnaissance envers sa large communauté, son excès de packages et sa syntaxe cohérente, les professionnels expérimentés utilisent également Python. Bien qu'il y ait une chose qui semble ennuyer à la fois les débutants et certains développeurs professionnels - les objets de Python.

Mutable vs. Immuable

Mutable les entités peuvent modifier leur état ou substance pour décrire la disparité, et immuable les entités ne peuvent pas modifier leur état ou leur substance. Ainsi, lorsqu'un objet est créé, un ID d'objet est attribué. Au moment de l'exécution, le type d'objet est spécifié et il ne peut pas être mis à jour ultérieurement. Les formulaires intégrés tels que les variables int, float, bool, str, tuple et Unicode sont immuables. Les objets tels que la liste, l'ensemble, les tableaux d'octets et le dictionnaire des catégories intégrées sont modifiables.

Comprendre l'ID et la fonction de type

L'intégré identifiant() la méthode contient l'identifiant d'un objet sous la forme d'un entier. Cet entier fait normalement référence à la position de stockage de l'objet. Le 'estL'opérateur ' relie les identités de deux objets entre eux. La fonction intégrée, taper(), renvoie le genre d'un objet. Comparez deux variables 'X' et 'oui', ayant la même valeur, en utilisant l'opérateur d'égalité 'x == y', il affichera Vrai. En utilisant le fonction id(), nous avons comparé les adresses mémoire des deux variables, il affichera Faux parce que les deux variables sont différentes et situées à des emplacements de mémoire différents, bien que les valeurs qu'elles contiennent soient les mêmes.

Faire une autre variable 'z' qui pointe vers l'entité identique qui 'X' dirige vers, en utilisant l'opérateur d'affectation '='. En utilisant le 'est', nous avons constaté qu'ils pointent tous les deux vers le même objet et ont les mêmes adresses mémoire.

Types de variables immuables

Regardons quelques types de variables immuables.

Type de données entier

Définissons une variable 'X'avoir une valeur'dix'. Un intégré méthode id() est utilisé pour trouver l'emplacement de 'X' en mémoire et taper() est utilisé pour identifier son type. Lorsque nous essayons de changer la valeur de 'X', il est modifié avec succès, bien que l'adresse mémoire retourne différemment. C'est parce que nous n'avons pas réellement changé la valeur de 'X', mais nous avons créé un autre objet du même nom 'X' et attribuez-lui une valeur différente. Nous avons lié le nom 'X' à la nouvelle valeur. Maintenant, chaque fois que vous appelez 'X' il affichera la nouvelle valeur.

Type de données de chaîne

Idem pour le type de données string, on ne peut pas modifier l'existant variable mais nous devons créer un nouveau avec le même nom. Ici nous avons défini une variable chaîne 'X' et souhaitez ajouter 'w' à ses index zéro. Il sortira Erreur-type, montrant que l'objet chaîne ne prend pas en charge la mise à jour.

Type de données de tuple

Avoir un aperçu d'un type de tuple variable, nous avons défini un tuple avec 4 valeurs. Nous avons utilisé le fonction id() pour sortir son adresse. Quand on veut changer sa valeur à 0 indice, ça donne le Erreur-type ce tuple ne prend pas en charge l'attribution ou la mise à jour d'éléments.

Au contraire, vous pouvez mettre à jour le tuple entier en le définissant à partir de rayure. Maintenant, chaque fois que vous le vérifiez, vous trouverez une nouvelle valeur et une nouvelle adresse.

Type de données flottant

Nous avons une variable de type flottant 'X'. En utilisant le fonction id(), nous devons trouver son adresse. Quand on veut changer sa valeur à indice 1, ça donne le Erreur-type ce flotteur ne prend pas en charge la modification d'élément.

A l'inverse, nous avons mis à jour le flotter en le redéfinissant. Maintenant, chaque fois que nous l'appelons, nous trouverons une nouvelle valeur et une nouvelle adresse.

Types de variables mutables

Nous allons maintenant examiner quelques types de variables mutables.

Lister le type de données

Nous avons défini un liste nommé 'X' et ajoutez-y des valeurs. Pendant que Cours, il affichera les valeurs de la liste. Lorsque vous mettre à jour la liste en attribuant de nouvelles valeurs à index 0 et 2, il le fera avec succès.

L'exemple décrit ci-dessus est un exemple simple et basique de modification. Pour vérifier la mutabilité à un niveau différent, examinons le même exemple avec peu de changement. Nous avons créé un nouveau nom 'oui' et le lier au même objet de liste. Lorsque nous avons vérifié si le 'X' est le même que 'oui', il renvoie True. D'autre part, les deux 'X' et 'oui' ont le même Mémoire adresses.

Maintenant, ajoutez une nouvelle valeur à un nom de la liste 'x' et vérifier la sortie mise à jour.

Maintenant, lorsque vous vérifiez la liste nom 'y', il affichera la même liste que pour 'x'. Cela signifie que lorsque nous mettons à jour la même liste d'objets, qui a deux noms différents 'x' et 'y'. Les deux sont identiques et partagent les mêmes adresses mémoire même après la modification.

Type de données du dictionnaire

Comme les dictionnaires sont des variables couramment utilisées en Python, examinons la mutabilité des dictionnaires. Nous avons défini un dictionnaire nommé 'dict' avec trois clés et leurs valeurs. Lorsque nous l'imprimons, il affichera tout son contenu. Vous pouvez imprimer chaque valeur du dictionnaire séparément, ainsi qu'utiliser leur clés au lieu d'index.

Nous voulons monnaie la valeur particulière en mettant à jour le clé 'Nom'. Il affichera le dictionnaire mis à jour. Les clés du dictionnaire sont immuables.

Définissons un liste et tuple séparément. Sois sûr que tuple doit avoir un valeur de type de liste dedans et une liste ont un valeur du type de tuple en elle par conséquent.

UNE tuple a un liste sur son 0 indice alors quand vous changez au 0 indice d'un tuple, vous devez mentionner le indice d'une liste où vous souhaitez modifier. Le changement se produit parce que la liste est immuable.

Au contraire, la variable de liste ne peut pas être mise à jour car elle a un tuple au 0 indice, qui est modifiable.

Conclusion

Nous avons vu des variations dans Python entre mutable et immuable. Vous devez comprendre clairement que tout en Python est appelé objet. Principalement, la distinction entre les objets qui sont mutables vs. immuable.

5 meilleurs jeux d'arcade pour Linux
De nos jours, les ordinateurs sont des machines sérieuses utilisées pour les jeux. Si vous ne pouvez pas obtenir le nouveau score élevé, vous saurez c...
Bataille pour Wesnoth 1.13.6 Développement publié
Bataille pour Wesnoth 1.13.6 publiée le mois dernier, est la sixième version de développement de la 1.13.x series et il apporte un certain nombre d'am...
Comment installer League Of Legends sur Ubuntu 14.04
Si vous êtes fan de League of Legends, alors c'est l'occasion pour vous de tester League of Legends. Notez que LOL est pris en charge sur PlayOnLinux ...