Heim  >  Artikel  >  Backend-Entwicklung  >  Python None-Vergleich: „is' oder ==?

Python None-Vergleich: „is' oder ==?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-13 02:51:02649Durchsuche

Python None Comparison:

Python None-Vergleich: „ist“ oder ==?

Der Vergleich von Variablen mit None ist eine häufige Operation in Python. Möglicherweise ist Ihnen jedoch eine Diskrepanz in der verwendeten Syntax aufgefallen, die zu der Frage führt, ob „is“ oder == verwendet werden soll.

Im Allgemeinen wird empfohlen, „is“ zu verwenden, wenn Variablen mit None verglichen werden . Der Grund dafür ist, dass „is“ die Objektidentität prüft, während == die Objektgleichheit prüft. In Python gibt es nur ein None-Objekt, sodass ein Vergleich mit None mithilfe von „is“ immer „True“ zurückgibt, wenn es sich um dasselbe Objekt handelt.

Andererseits prüft == die Objektgleichheit. Dies bedeutet, dass True zurückgegeben wird, wenn die beiden Objekte gleich sind, auch wenn es sich nicht um dasselbe Objekt handelt. Betrachten Sie beispielsweise den folgenden Code:

class Negator(object):
    def __eq__(self, other):
        return not other

thing = Negator()
print(thing == None)  # True
print(thing is None)  # False

In diesem Beispiel definiert die Negator-Klasse eine eq-Methode, die True zurückgibt, wenn die Objekte nicht gleich sind. Beim Vergleich von thing mit None mithilfe von == wird die benutzerdefinierte Methode eq aufgerufen, was zu True führt. Beim Vergleich mit is sehen wir jedoch, dass es sich nicht um dasselbe Objekt handelt, was zu False führt.

Wenn Sie also streng prüfen, ob ein Objekt mit None identisch ist (d. h. auf Nullität prüfen), ist es Es wird empfohlen, „is“ zu verwenden. Wenn Sie jedoch auf Gleichheit prüfen (d. h. prüfen, ob zwei Objekte den gleichen Wert haben), sollten Sie ==.

verwenden

Das obige ist der detaillierte Inhalt vonPython None-Vergleich: „is' oder ==?. 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