Mögliche Duplizieren:
String comparison in Python: is vs. ==
Python string interning
Why does comparing strings in Python using either '==' or 'is' sometimes produce a different result?Python: Warum Operator "ist" und "==" sind manchmal für Zeichenfolgen austauschbar?
habe ich versehentlich is
und ==
für Streicher austauschbar, aber ich entdeckte, ist nicht immer gleich.
>>> Folder = "locales/"
>>> Folder2 = "locales/"
>>> Folder is Folder2
False
>>> Folder == Folder2
True
>>> File = "file"
>>> File2 = "file"
>>> File is File2
True
>>> File == File2
True
>>>
Warum in einem Fall Operatoren sind austauschbar und in der anderen nicht?
Rau aus dieser Gewohnheit haben! Strings mit "is" zu vergleichen ist nicht zuverlässig und nicht portabel über Python-Plattformen (CPython/jython/Iron Python). Vergleichen Sie Zeichenfolgen mit '=='. Save 'is' für den Identitätsvergleich mit Singletons (wie' None') oder Objekten Ihrer eigenen Kreation. Verwenden Sie "Ist" auch zum Vergleichen von Ints? Das ist genauso unzuverlässig. – PaulMcG
@PaulMcGuire Ich habe das nicht benutzt, aber habe es zufällig entdeckt. Und dann probierte es und entdeckte die obige Inkonsistenz. –
Andere relevante Fragen, die als Täuschungsziele in Betracht gezogen werden könnten: [Warum führt das Vergleichen von Strings in Python mit '==' oder 'is' manchmal zu einem anderen Ergebnis?] (Http://stackoverflow.com/q/1504717) und [ Python String Interning] (http://stackoverflow.com/q/15541404) –