Possible Duplicate:
String comparison in Python: is vs. ==
Python string interning
Why does comparing strings in Python using either ‘==’ or ‘is’ sometimes produce a different result?
I used accidentally is and == for strings interchangeably, but I discovered is not always the same.
>>> Folder = "locales/"
>>> Folder2 = "locales/"
>>> Folder is Folder2
False
>>> Folder == Folder2
True
>>> File = "file"
>>> File2 = "file"
>>> File is File2
True
>>> File == File2
True
>>>
Why in one case operators are interchangeable and in the other not ?
Short strings are interned for efficiency, so will refer to the same object therefore
iswill be true.This is an implementation detail in CPython, and is absolutely not to be relied on.