Warum vergleichen von strings mit '==' oder 'ist' manchmal ein anderes Ergebnis?

Habe ich ein Python-Programm, in dem zwei Variablen werden auf den Wert festgelegt 'public'. In einem bedingten Ausdruck ich habe den Vergleich var1 is var2 was nicht, aber wenn ich es ändern zu var1 == var2 es gibt True.

Nun, wenn ich mein Python-interpreter und das gleiche tun "ist" - Vergleich, gelingt es.

>>> s1 = 'public'
>>> s2 = 'public'
>>> s2 is s1
True

Was vermisse ich hier?

Ich weiß nicht, etwas über Python, aber es ist möglich, dass man den Vergleich von Werten, während der andere Vergleich von Objekten?
siehe: stackoverflow.com/questions/1392433/...
Dieses problem tritt auch auf, wenn Sie Lesen eine Konsole zur Eingabe über z.B.: input = raw_input("Decide (y/n): "). In diesem Fall wird eine Eingabe von "y" und if input == 'y':wird "True" zurückgegeben, während if input is 'y': False zurück.
Dieser blog bietet eine weitaus ausführlichere Erklärung als keine Antwort guilload.com/python-string-interning
Mögliche Duplikate von gibt es einen Unterschied zwischen `==` und `ist` in Python?

InformationsquelleAutor jottos | 2009-10-01

Schreibe einen Kommentar