Skip to content

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]