is et ==☘
Nous avons utilisé l'identifiant id
pour suivre la création ou modification d'objet.
Nous pouvons également utiliser is
.
Analyser le code suivant:
1 2 3 4 5 6 7 8 9 10 11 12 13 | >>> t = [2, 3, 4] >>> s = t >>> v = [2, 3, 4] >>> t is s True >>> s is t True >>> v is t False >>> v == t True >>> s == v True |
Cela permet de différencier deux étiquettes qui désignent le même objet (ici t et s) du cas de deux étiquettes qui désignent des objets de même type et de même contenu mais qui sont bien distincts (emplacements mémoire distincts).
Une modification de s "sur place" entraînera ici une modification de t, tandis que le même type de modification sur v n'aura aucune conséquence sur t:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | >>> t = [2,3,4] >>> s = t >>> v = [2,3,4] >>> s[0] = 42 >>> s [42, 3, 4] >>> t [42, 3, 4] >>> v [2, 3, 4] >>> v[0] = 200 >>> v [200, 3, 4] >>> t [42, 3, 4] |