Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen „foo is None“ und „foo == None“?

Was ist der Unterschied zwischen „foo is None“ und „foo == None“?

anonymity
anonymityOriginal
2019-05-24 13:59:442427Durchsuche

Der Unterschied zwischen „foo is None“ und „foo == None“ ist: der Unterschied in den Richtern. Der is-Richter wird verwendet, um zu vergleichen, ob zwei Objekte dasselbe Objekt sind, und der ==-Richter wird verwendet um zwei Objekte zu vergleichen.

Was ist der Unterschied zwischen „foo is None“ und „foo == None“?

Der Unterschied zwischen foo ist None und foo == None

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

Dies sind zwei verschiedene Verwendungen, sie sind Was der Unterschied?

LösungAntwort:

Die Variablen selbst in Python speichern ihre Werte nicht tatsächlich auf ein zwischengespeichertes Objekt Speicher selbst, zum Beispiel:

a=5
b=5

Es scheint, dass die beiden Variablen tatsächlich auf dasselbe Objekt verweisen. Zu diesem Zeitpunkt sind a==b, a und b beide wahr und == Der Operator vergleicht die Werte der beiden Objekte und stellt fest, ob zwei Variablen auf dieselbe Referenz verweisen. Wenn Sie feststellen möchten, ob es sich um dasselbe Objekt handelt, können Sie die Identifikation des Objekts anzeigen tatsächliches Objekt (eine Ganzzahl). Zu diesem Zeitpunkt sind id(a), id(b), id( 5) alle Bezeichner konsistent.

Wenn foo ebenfalls „None“ ist, verweist foo tatsächlich auf den tatsächlichen Bezeichner des None-Objekts. Verwenden Sie zu diesem Zeitpunkt id(), um den Bezeichner einer beliebigen Variablen anzuzeigen, die „None“ ist, und Sie werden das finden es ist dasselbe wie id(None) Die Ergebnisse sind die gleichen.

Die Ergebnisse in der Frage sind die gleichen, aber die Semantik ist unterschiedlich. Es hängt davon ab, ob Sie „foo und None sind das gleiche Objekt“ oder „foo-Wert und None-Wert sind“ ausdrücken möchten gleich".

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „foo is None“ und „foo == None“?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn