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.