Heim > Backend-Entwicklung > Python-Tutorial > Ist „is' oder „==' der richtige Weg, um in Python mit None zu vergleichen?

Ist „is' oder „==' der richtige Weg, um in Python mit None zu vergleichen?

Barbara Streisand
Freigeben: 2024-11-29 04:16:10
Original
722 Leute haben es durchsucht

Is

Python-Nullvergleich: Ist „is“ oder „==" die bevorzugte Option?

Beim Vergleich von Werten in Python gibt es zwei Operatoren, die Sie verwenden können: „==“ und „is“. Während beide zur Prüfung auf Gleichheit verwendet werden können, verhalten sie sich beim Umgang mit dem Sonderwert None unterschiedlich, was zu Verwirrung und möglichen Editor-Warnungen führt.

Verstehen von „==" und „is" für den Nullvergleich

Der „=="-Operator prüft die Gleichheit, indem er die Werte zweier Objekte vergleicht. Andererseits untersucht „is“ die Identität und überprüft, ob zwei Objekte dasselbe Objekt im Speicher sind.

Warnungen beim Vergleich mit „Keine“ vermeiden

Die meisten Code-Editoren werden dies tun Geben Sie eine Warnung aus, wenn Sie „==“ verwenden, um eine Variable mit „Keine“ zu vergleichen. Dies liegt daran, dass es im Allgemeinen als bessere Praxis angesehen wird, „is“ bei der Prüfung auf Keine-Werte zu verwenden.

Warum „is“ für den Nullvergleich bevorzugt wird

„is“ wird aus mehreren Gründen bevorzugt:

  • Es ist expliziter: „ist“ zeigt deutlich an, dass Sie nach einem Objekt suchen Identität, wodurch Mehrdeutigkeit reduziert wird.
  • Es ist effizienter: „is“ ist eine schnellere Operation als „==", wenn nach None gesucht wird.
  • Das ist es Zuverlässiger: Benutzerdefinierte Klassen können den Operator „==" überschreiben und möglicherweise True zurückgeben, auch wenn der Wert eigentlich nicht None ist. „is“ umgeht dieses Problem, indem es direkt auf Objektidentität prüft.

Beispiel: Veranschaulichung des Unterschieds

Betrachten Sie die folgende benutzerdefinierte Klasse:

class Negator:
    def __eq__(self, other):
        return not other
Nach dem Login kopieren

Wenn wir ein Objekt aus dieser Klasse instanziieren und es damit vergleichen Keine:

thing = Negator()
print(thing == None)  # True
print(thing is None)  # False
Nach dem Login kopieren

Wir sehen, dass „==" True zurückgibt, weil die Klasse den Gleichheitsoperator überschreibt. Allerdings gibt „is“ korrekterweise „False“ zurück, da das Objekt nicht mit „None“ identisch ist.

Schlussfolgerung

Beim Vergleich von Werten mit „None“ in Python ist „is“ im Allgemeinen der Wert „is“. der bevorzugte Betreiber. Es ist expliziter, effizienter und zuverlässiger als „==“. Wenn Sie den Unterschied zwischen diesen Operatoren verstehen, können Sie genaueren und effizienteren Code schreiben und gleichzeitig potenzielle Editor-Warnungen vermeiden.

Das obige ist der detaillierte Inhalt vonIst „is' oder „==' der richtige Weg, um in Python mit None zu vergleichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage