Python verstehen Kein Vergleich: „is“ vs. ==
Python-Entwickler stehen beim Vergleich einer Variablen oft vor der Frage, ob sie „is“ oder == verwenden sollen zu Keine. Während beide Optionen zu einer gültigen Syntax führen, hängt der bevorzugte Ansatz vom beabsichtigten Vergleich ab.
Der Hauptunterschied liegt in der Natur von der Vergleich: Objektidentität oder -gleichheit.
Im Fall von None gibt es in Python nur ein solches Objekt. Daher prüft my_var is None, ob my_var auf dasselbe None-Objekt verweist.
Während beide None und == None sind Sind gültige Syntax, gilt None als expliziter und weniger fehleranfällig.
Berücksichtigen Sie die Folgende Situation:
class Negator(object): def __eq__(self, other): return not other thing = Negator() print(thing == None) # True print(thing is None) # False
In diesem Beispiel überschreibt die Negator-Klasse den ==-Operator, um immer das Gegenteil des Arguments zurückzugeben. Als Ergebnis wird thing == None als „True“ ausgewertet, was Wertgleichheit anzeigt. Allerdings wird thing is None korrekt als False ausgewertet, was darauf hinweist, dass thing und None nicht dasselbe Objekt sind.
Zur Überprüfung der Objektidentität, einschließlich Vergleichen mit Keine, dies ist der bevorzugte Ansatz. Es sorgt für Klarheit und verhindert potenzielle Mehrdeutigkeiten, die durch überschriebene Gleichheitsoperatoren verursacht werden. Denken Sie daran, dass es auf Identität prüft, während == auf Gleichheit prüft.
Das obige ist der detaillierte Inhalt vonWarum wird in Python „is None' gegenüber „== None' bevorzugt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!