
Lorsque nous disons que les tuples sont immuables, de nombreux programmeurs Python pensent que les valeurs à l'intérieur d'un tuple ne peuvent pas changer. Mais ce n'est pas vrai.
L'immutabilité d'un tuple est uniquement limitée à l'identité des objets qu'il contient, et non à leur valeur.
En d'autres termes, supposons qu'un tuple contienne deux objets avec les IDs 1 et 2. L'immuabilité signifie que la collection d'IDs référencés par le tuple (et leur ordre) ne peut jamais changer.
Cependant, il n'existe AUCUNE restriction telle que les objets individuels avec les IDs 1 et 2 ne peuvent être modifiés.
Par conséquent, si les éléments à l'intérieur du tuple sont des objets mutables, tu peux effectivement les modifier.
Et tant que la collection d'IDs reste la même, un tuple, conserve son immutabilité.
C'est ce qu’explique la démonstration ci-dessus. Comme append est une opération de remplacement (inplace), la collection d'IDs n'a pas changé. Python n'a donc pas soulevé d'erreur.
Nous pouvons également le vérifier en imprimant la collection d'IDs d'objets référencés à l'intérieur du tuple avant et après l'opération d’ajout :

Comme indiqué ci-dessus, les IDs avant et après l'ajout sont les mêmes. Ainsi, la propriété d’immutabilité du tuple demeure inchangée.
Envie d'aller plus loin ? DataXp t'attend : formations et parcours pour progresser en data science, machine learning et IA.

