Eventuali duplicati:
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: Perché l'operatore "è" e "==" sono talvolta intercambiabili per le stringhe?
ho usato per sbaglio is
e ==
per le stringhe in modo intercambiabile, ma ho scoperto non è sempre lo stesso.
>>> Folder = "locales/"
>>> Folder2 = "locales/"
>>> Folder is Folder2
False
>>> Folder == Folder2
True
>>> File = "file"
>>> File2 = "file"
>>> File is File2
True
>>> File == File2
True
>>>
Perché in un caso gli operatori sono intercambiabili e nell'altro no?
uscire da questa abitudine ADESSO! Confrontare le stringhe con 'is' non è affidabile e non portabile su piattaforme Python (CPython/jython/Iron Python). Confronta le stringhe con '=='. Salva 'is' per il confronto delle identità con singleton (come' None') o oggetti di tua creazione. Usi 'is' anche per confrontare gli interi? Questo è altrettanto inaffidabile. – PaulMcG
@PaulMcGuire Non l'ho usato ma l'ho scoperto per caso. E poi provato e scoperto l'incoerenza di cui sopra. –
Altre domande pertinenti che potrebbero essere considerate obiettivi dupe: [Perché confrontare stringhe in Python usando '==' o 'is' a volte produce un risultato diverso?] (Http://stackoverflow.com/q/1504717) e [ Python string interning] (http://stackoverflow.com/q/15541404) –