'11' + '1' is '111'?

metal metal29a at gmail.com
Thu Oct 29 21:13:51 EDT 2009


On 10月30日, 上午9时03分, Benjamin Peterson <benja... at 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




More information about the Python-list mailing list