On 10月30日, 上午9时03分, Benjamin Peterson <benja...@python.org> 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.
You are right. It's not cache, just constant folding, but it does not propagate further. a = '1' a+a is not a+a -- http://mail.python.org/mailman/listinfo/python-list