python string comparison oddity

Faheem Mitha faheem at
Wed Jun 18 21:26:57 CEST 2008

Hi everybody,

I was wondering if anyone can explain this. My understanding is that 'is' 
checks if the object is the same. However, in that case, why this 
inconsistency for short strings? I would expect a 'False' for all three 
comparisons. This is reproducible across two different machines, so it is 
not just a local quirk. I'm running Debian etch with Python 2.4.4 (the 
                                                            Thanks, Faheem.

In [1]: a = '--'

In [2]: a is '--'
Out[2]: False

In [4]: a = '-'

In [5]: a is '-'
Out[5]: True

In [6]: a = 'foo'

In [7]: a is 'foo'
Out[7]: True

More information about the Python-list mailing list