Qu'est-ce qu'un objet immuable en Python ?
Un objet immuable est un objet que l'on ne peut pas modifier.
Parmi les objets immuables, on retrouve notamment :
- Les nombres entiers (
int
) - Les nombres décimaux (
float
) - Les chaînes de caractères (
str
) - Les booléens (
bool
) - Les tuples (
tuple
)
Si vous essayez de modifier un objet immuable, Python vous retournera une erreur :
prenom = "Patrick"
prenom[-1] = "e"
La seule solution est donc de créer un nouvel objet en mémoire :
prenom = "Patrick"
prenom = "Patrice"
print(prenom)
On pourrait penser parfois que l'on modifie une chaîne de caractères, par
exemple en utilisant l'opérateur +=
:
prenom = "Patric"
prenom += "e"
print(prenom)
En fait, quand on fait ceci, on crée une nouvelle variable prenom
qui
contient une nouvelle valeur.
On peut vérifier cette affirmation grâce à la fonction id qui nous retourne l'adresse en mémoire d'un objet :
prenom = "Patric"
print("L'identifiant en mémoire de la variable prenom est", id(prenom))
prenom += "e"
print("L'identifiant en mémoire de la variable prenom est", id(prenom))
On voit bien avec le code ci-dessus que l'ID change après que l'on ait utilisé
l'opérateur +=
.
Il s'agit donc bien ici de deux variables prenom
distinctes et non de la
même variable qui a été modifiée.