Maison  >  Article  >  développement back-end  >  Quelle est la différence entre 'foo is None' et 'foo == None'

Quelle est la différence entre 'foo is None' et 'foo == None'

anonymity
anonymityoriginal
2019-05-24 13:59:442500parcourir

La différence entre "foo is None" et "foo == None" est la suivante : la différence entre les juges. Le juge is est utilisé pour comparer si deux objets sont le même objet, et le juge == est utilisé. pour comparer deux objets. Si les valeurs des objets sont égales.

Quelle est la différence entre 'foo is None' et 'foo == None'

La différence entre foo est None et foo == None

if foo is None: 
    pass
if foo == None: 
    pass

Ce sont deux utilisations différentes, ce sont quoi la différence ?

SolutionRéponse :

Les variables elles-mêmes en Python ne stockent pas leurs valeurs. L'affectation de variable pointe en fait la référence de variable vers un objet mis en cache. mémoire elle-même, par exemple :

a=5
b=5

Il semble que les deux variables pointent en fait vers le même objet. À ce stade, a==b, a is b sont tous deux vrais et ==. L'opérateur compare les valeurs​​des deux objets. Il détermine si deux variables pointent vers la même référence. Si vous souhaitez déterminer s'il s'agit du même objet, utilisez la fonction id() pour afficher l'identification de l'objet réel. (un entier). À l'heure actuelle, id(a), id(b), id( 5) Les identifiants sont tous cohérents.

De même, si foo vaut None, foo pointe en fait vers l'identifiant réel de l'objet None. À ce stade, utilisez id() pour afficher l'identifiant de toute variable qui est None, et vous le constaterez. c'est la même chose que id(None) Les résultats sont les mêmes.

Les résultats de la question sont les mêmes, mais la sémantique est différente. Cela dépend si vous voulez exprimer "foo et None sont le même objet", ou "foo value et None value sont". égal".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn