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
Barbara StreisandOriginal
2024-12-24 22:41:11607Durchsuche

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

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

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
  • 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

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!

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