[Python-Dev] Re: accumulator display syntax
Phillip J. Eby
pje at telecommunity.com
Sun Oct 26 10:41:43 EST 2003
At 04:16 PM 10/25/03 -0700, Guido van Rossum wrote:
> > > No way. There's nothing that guarantees that a+=b has the same
> > > semantics as a+b, and in fact for lists it doesn't.
> > You mean because += is more permissive (accepts any sequence
> > RHS while + insists the RHS be specifically a list)? I don't see how
> > this would make it bad to use += instead of + -- if we let the user
> > sum up a mix of (e.g.) strings and tuples, why are we hurting him?
>We specifically decided that sum() wasn't allowed for strings, because
>it's a quadratic algorithm. Other sequences are just as bad, we just
>didn't expect that to be a common case.
>Also see my not-so-far-fetched example of a semantic change.
Maybe I'm confused, but when Alex first proposed this change, I mentally
assumed that he meant he would change it so that the *first* addition would
use + (in order to ensure getting a "fresh" object) and then subsequent
additions would use +=.
If this were the approach taken, it seems to me that there could not be any
semantic change or side-effects for types that have compatible meaning for
+ and += (i.e. += is an in-place version of +).
Maybe I'm missing something here?
More information about the Python-Dev