Qu'est-ce qui est mutable et immuable en Python ?

Publié: 2022-09-22

En Python, chaque variable contient une instance de n'importe quel objet de deux types, c'est-à-dire mutable et immuable. Un identifiant d'objet unique est attribué à un objet chaque fois qu'il est instancié. Le runtime définit le type d'objet et ne peut pas être modifié ultérieurement.

Cependant, l'objet modifiable est un objet mutable. Lorsque nous disons mutable, cela signifie que l'état interne de l'objet peut être muté. Simultanément, l'état d'objet incapable de changer après la création est un objet immuable. Les états mutables et immuables font partie intégrante de la structure de données de Python.

La fonctionnalité de mutabilité des objets en Python en fait un langage à typage dynamique. Mutable et Immutable en Python sont assez essentiels en tant que concept mais sont souvent confondus en raison de leur nature intransitive d'immuabilité.

Découvrons tout à leur sujet et les principales différences.

Consultez nos cours en ligne sur la science des données pour vous perfectionner

Table des matières

Les meilleures compétences en science des données pour apprendre à se perfectionner

SL. Non Les meilleures compétences en science des données à apprendre en 2022
1 Cours en ligne sur l'analyse des données Cours en ligne sur les statistiques inférentielles
2 Cours en ligne sur les tests d'hypothèses Cours en ligne sur la régression logistique
3 Cours de régression linéaire Cours en ligne d'algèbre linéaire pour l'analyse

État mutable en Python

Le mot 'Mutable' se traduit directement par 'changeable' ou quelque chose qui peut être 'muté'. Il définit un objet ouvert aux modifications et, en Python, "mutable" se rapporte à la capacité d'un objet à modifier des valeurs. Ces objets stockent souvent la collecte de données et contiennent des listes de types intégrées, des ensembles, des dictionnaires et des classes définies par l'utilisateur.

État de définition immuable en Python

Immuable en Python, c'est quand vous ne pouvez pas changer le type d'objet au fil du temps. S'il n'est pas possible de modifier la valeur d'un objet en Python, il s'agit d'un objet immuable. Une fois qu'un objet immuable est créé, sa valeur reste permanente et immuable. Les objets de type intégré immuables sont les nombres, les chaînes, les tuples, les ensembles figés et les classes définies par l'utilisateur.

Objets en Python

Avant d'approfondir la mutabilité et l'immuabilité en Python, apprenons d'abord ce que sont les objets. En Python, tout est considéré comme un objet, et chaque objet a trois attributs :

  • Identité : Il s'agit de l'adresse de l'objet dans la mémoire de l'ordinateur.
  • Type : Il s'agit du type d'objet créé. Par exemple, entier, chaîne, liste et autres.
  • Valeur : Il s'agit de la valeur que l'objet stocke. Par exemple, List=[5,6,7] stocke les nombres 5, 6 et 7.

Même si l'ID et le Type d'un objet ne sont pas ouverts au changement après la création, les valeurs sont ouvertes aux modifications pour les objets Mutable.

Objets mutables en Python

Les objets mutables sont les objets en Python qui peuvent être mutés ou modifiés. Les codes servent mieux à enseigner la mise en œuvre de ces objets. Par conséquent, regardons quelques codes et essayons de mieux comprendre les objets mutables :

  • Pour faire une liste contenant les noms de fruits

fruits= ['Mangue', 'Papaye', 'Orange']

  • Pour imprimer les éléments de la liste des fruits, séparés par une virgule et un espace

pour les fruits dans les fruits :

impression(fruit, fin=', ')

Sortie [1] : Mangue, Papaye, Orange

  • Pour imprimer l'emplacement de l'objet créé dans l'adresse mémoire au format hexadécimal

Explorez nos cours en ligne populaires sur la science des données

Programme exécutif de troisième cycle en science des données de l'IIITB Programme de certificat professionnel en science des données pour la prise de décision commerciale Master of Science en science des données de l'Université de l'Arizona
Programme de certificat avancé en science des données de l'IIITB Programme de certificat professionnel en science des données et analyse commerciale de l'Université du Maryland Cours en ligne sur la science des données

print(hex(id(fruits)))

Sortie [2] : 0x1691d7de8c8

  • Ajout d'un nouveau fruit à la liste 'fruits'

fruits.append('Raisins')

  • Pour imprimer les éléments présents dans la liste 'fruits', séparés par une virgule & un espace

pour les fruits dans les fruits :

impression(fruit, fin=', ')

Sortie [3] : Mangue, Papaye, Orange, Raisins

  • Pour imprimer l'emplacement de l'objet créé dans l'adresse mémoire au format hexadécimal

print(hex(id(fruits)))

Sortie [4] : 0x1691d7de8c8

L'exemple montre que l'état interne de l'objet 'fruits' peut facilement changer en y ajoutant un autre fruit, 'Grapes'. Cependant, l'adresse mémoire de l'objet reste la même, prouvant qu'un nouvel objet n'a pas besoin d'être créé. Au contraire, le même objet pourrait être modifié ou muté. Cet exemple montre que l'objet avec le nom de variable de référence 'fruits', un type de liste, est modifiable.

Objets immuables en Python

Les objets immuables en Python sont les objets dont les valeurs ne peuvent pas être modifiées. Suivons un code simple pour mieux saisir ce que sont les objets immuables et comment ils fonctionnent. Le code est donné ci-dessous:-

  • Pour créer un Tuple contenant le nom anglais des mois

mois = 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août'

  • Pour imprimer les éléments de tuple mois

imprimer (mois)

Sortie [1] : ('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août')

  • Pour imprimer l'emplacement de l'objet, qui est créé dans l'adresse mémoire au format hexadécimal

impression(hex(id(mois)))

Sortie [2] : 0x1691cc35090

  • Il est important de noter que les tuples sont immuables ; par conséquent, ils n'incluent pas plus d'éléments nouveaux. Par conséquent, vous devez utiliser la fusion de tuples avec l'opérateur # + pour ajouter un nouveau mois imaginaire dans le tuple 'mois'.

mois += 'Pythonuaire'

  • Pour imprimer les éléments du tuple 'mois'.

imprimer (mois)

Sortie [3] : ('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Pythonuaire')

  • Pour imprimer l'emplacement de l'objet créé dans l'adresse mémoire au format hexadécimal

impression(hex(id(mois)))

Sortie [4] : 0x1691cc8ad68

Lisez nos articles populaires sur la science des données

Cheminement de carrière en science des données : un guide de carrière complet Croissance de carrière en science des données : l'avenir du travail est là Pourquoi la science des données est-elle importante ? 8 façons dont la science des données apporte de la valeur à l'entreprise
Pertinence de la science des données pour les managers La feuille de triche ultime de la science des données que tous les scientifiques des données devraient avoir Top 6 des raisons pour lesquelles vous devriez devenir Data Scientist
Une journée dans la vie d'un data scientist : que font-ils ? Mythe brisé : la science des données n'a pas besoin de codage Business Intelligence vs Data Science : quelles sont les différences ?

Cet exemple prouve que les noms de variables peuvent être facilement utilisés pour référencer un objet, une sorte de tuple composé de huit éléments. Cependant, l'ID d'emplacement mémoire de l'ancien et du nouveau tuple n'est pas le même. Par conséquent, l'état interne 'mois' de l'objet ne pouvait pas être modifié. Par conséquent, le gestionnaire de programme Python a créé un nouvel objet dans l'adresse mémoire. De plus, le nom de variable 'mois' faisait également référence au nouvel objet avec neuf éléments. Par conséquent, prouver que le tuple, l'objet avec le nom de variable de référence 'mois', est un objet immuable.

Conclusion

Les objets mutables sont principalement utilisés pour autoriser les futures mises à jour. D'autre part, l'immuabilité offre également de nombreuses applications efficaces et pratiques pour diverses tâches sensibles dans un lieu centré sur le réseau, permettant un traitement parallèle. Objets immuables, scellez les valeurs et assurez-vous qu'aucun des threads n'invoque l'écrasement/la mise à jour des données. Il est idéal pour écrire des codes permanents qui n'auront pas besoin de modifications à l'avenir.

Si vous êtes un programmeur en herbe ou un passionné de science des données, l'apprentissage des objets mutables et immuables en Python s'avérera vous aider à choisir ce domaine comme carrière. La meilleure façon d'en savoir plus est de s'inscrire au programme d'études supérieures en science des données sur upGrad.

Le cours est créé sous la direction d'experts du corps professoral, offrant une connaissance approfondie des sujets d'actualité pour préparer des milliers d'apprenants à une carrière à l'épreuve du temps.

Q1. Quelles sont les différences significatives entre mutable et immuable en Python ?

Réponse : L'état ou la valeur d'un objet est ouvert à la modification après la création dans mutable L'état ou la valeur d'un objet n'est pas ouvert à la modification après la création dans l'immuable Les objets mutables ne sont pas thread-safe. Les objets immuables sont entièrement thread-safe Les classes mutables ne sont pas définitives. Avant de créer un objet immuable, vous devez rendre la classe finale.

Q2. En Python, que sont les types de données mutables et immuables ?

Réponse : Les types de données mutables en Python sont les classes list, set, dictionary et définies par l'utilisateur et les types de données immuables sont int, decimal, float, bool, tuple, string et range.

Q3. Les listes sont-elles modifiables en Python ?

Réponse : En Python, les listes sont les types de données modifiables avec des éléments facilement modifiables. De plus, vous pouvez remplacer les éléments individuels et même modifier l'ordre des éléments après avoir créé la liste.