[Python] : /!\ les faux amis “is” et “==”

Ah il fallait que l’on arrive vers ce genre d’article. Il s’agit d’attirer notre attention sur de petites subtilités. Dans le cas présent je considère cela comme un faux ami.

Parfois on a tendance à faire des raccourcis ou des abus de langage en perdant de vue l’origine des choses. Et pourtant jamais, un code propose 2 fonctions qui font la même chose. On ne clone pas le fonction par plaisir.C’est le cas avec “==” et “is”. Je l’avoue “is” est heureusement pas si souvent que cela détourné de sa vocation première.

Quelques lignes de code pour comprendre :

>>> list1 = [1, 2, 3]
>>> list2 = list1

>>> list1 is list2
True
>>> list1 == list2
True

Jusque là tout va bien.

sign slippery wet caution

Photo by Skitterphoto on Pexels.com

Mais :

>>> list3 = list(list1)

>>> list1 == list3
True
>>> list1 is list3
False

Ahah que se passe-t-il ?

Forcément ils ne font pas la même chose.

“is” vérifie les objets. Si on pointe vers le même il retourne True.

“==” vérifie que le contenu des objets sont bien identiques.

Et voilà !

Découvrez  [Python] : comment lire les lignes d'un fichier tout simplement ? read et readline