Heim > Backend-Entwicklung > Python-Tutorial > Was ist der Unterschied zwischen „==' und „is' in Python?

Was ist der Unterschied zwischen „==' und „is' in Python?

Barbara Streisand
Freigeben: 2024-12-24 22:41:11
Original
597 Leute haben es durchsucht

What's the Difference Between `==` and `is` in Python?

Den Unterschied zwischen „==“ und „is“ in Python verstehen

Beim Vergleichen von Werten in Python gibt es zwei Gemeinsamkeiten Operatoren: „==“ und „is“. Oft scheint es so, als würden diese Operatoren die gleiche Gleichheitsprüfung durchführen. Es gibt jedoch einen subtilen Unterschied zwischen den beiden hinsichtlich ihrer Bewertung.

Die Operatoren „==" und „is“

  • "==": Prüft auf Wertgleichheit. Das bedeutet, dass es prüft, ob sich zwei Variablen auf Objekte beziehen, die dasselbe enthalten Wert.
  • "ist": Prüft die Objektidentität. Dabei wird geprüft, ob sich zwei Variablen auf dasselbe Objekt im Speicher beziehen, unabhängig von ihren Werten.

Wertgleichheit vs. Objektidentität

Wert Gleichheit:

  • Bei Verwendung von „==" vergleicht Python die Werte der Objekte, auf die die Variablen verweisen.
  • Wenn die Werte gleich sind, ist das Ergebnis True , unabhängig davon, ob es sich bei den Objekten um unterschiedliche Instanzen in handelt Speicher.

Beispiel:

a = 10
b = 10

if a == b:
    print("Yay!")  # Will print "Yay!" as 10 == 10
Nach dem Login kopieren

Objektidentität:

  • Bei Verwendung von „is“ vergleicht Python das Objekt Bezeichner der Variablen.
  • Wenn die Variablen auf dasselbe Objekt im Speicher verweisen, ist das Ergebnis „True“, auch wenn ihre Werte wahr sind anders.

Beispiel:

a = [1, 2, 3]
b = a

if a is b:
    print("Yay!")  # Will print "Yay!" as a and b point to the same list
Nach dem Login kopieren

Ausnahmen von der Regel

  • Ganzzahlen: Python speichert aus Leistungsgründen kleine Integer-Objekte (bis zu 256) zwischen. Das bedeutet, dass „is“ auch für verschiedene Integer-Variablen innerhalb dieses Bereichs „True“ zurückgeben kann:
a = 100
b = 100

if a is b:
    print("Yay!")  # Will print "Yay!" due to integer caching
Nach dem Login kopieren
  • Strings: In ähnlicher Weise speichert Python gängige String-Literale zwischen. Beachten Sie jedoch, dass dies nicht für Zeichenfolgen gilt, die aus Variablen erstellt wurden:
a = "a"
b = "a"

if a is b:
    print("Yay!")  # Will print "Yay!" as string literals are cached

b = "aa"

if a is b:
    print("Nay!")  # Will not print as b is a different object
Nach dem Login kopieren

Zusammenfassend lässt sich sagen, dass „==“ auf Wertgleichheit prüft, während „is“ auf Objektidentität prüft. Das Verständnis dieser Unterscheidung ist wichtig, um korrekten und effizienten Python-Code zu schreiben.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „==' und „is' in Python?. 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