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

Print Friendly, PDF & Email

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 charger des datas en base de données mysql avec mysql.connector ?