Benjamin Peterson wrote:
metal <metal29a <at> gmail.com> writes:
'11' + '1' == '111' is well known.
but it suprises me '11'+'1' IS '111'.
Why? Obviously they are two differnt object.
Is this special feature of imutable object?
As other posters have pointed out, CPython does cache some small strings. In
this case, however, it's because '1' + '11' is constant folded.
It's also easy to fool the constant folding:
>>> '11' + '1' is '111'
True
>>> '11' * 1 + '1' is '111'
True
>>> '11' + '1' * 1 is '111'
False
--
http://mail.python.org/mailman/listinfo/python-list