[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à !

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s