39 votes

Instruction Python "is" : que se passe-t-il ?

J'ai été assez surpris quand

[] is not []

évaluée à True.

Que se passe-t-il dans ce code ? Que font réellement not is énoncés ?

59voto

Mark Byers Points 318575

a is not b est un opérateur spécial qui équivaut à not a is b.

L'opérateur a is b renvoie Vrai si a et b sont liés au même objet, sinon Faux. Lorsque vous créez deux listes vides, vous obtenez deux objets différents, donc is renvoie Faux (et donc is not renvoie Vrai).

35voto

unholysampler Points 9454

is est la comparaison d'identité.

== est la comparaison d'égalité.

Votre relevé fait deux listes différentes et vérifie si elles sont la même instance, ce qui n'est pas le cas. Si vous utilisez == il retournera vrai et parce qu'ils sont tous les deux des listes vides.

8voto

Sjoerd Points 34671

is signifie la même chose. Il évalue à true si les variables de chaque côté de l'opérateur pointent vers le même objet et false sinon.

Référence, près du fond.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X