Augmented Assignement (was: Re: PEP scepticism)

Bruce Sass bsass at freenet.edmonton.ab.ca
Thu Jun 28 23:36:16 CEST 2001


On Thu, 28 Jun 2001, Bruce Sass wrote:

> On Thu, 28 Jun 2001, Paul Prescod wrote:
>
> > I think Python has been getting better and better as time goes on. But I
> > do have a concern about augmented assignment. How can a newbie
> > understand that tuples are "immutable" if this works:
> >
> > mytuple += (foo,bar)
>
> Ya, ok, it was a rhetorical question <shrug>
> maybe this sequence would help explain it to someone...
>
> >>> a = 1,2
> >>> b = a
> >>> a, b
> ((1, 2), (1, 2))
> >>> id(a), id(b)
> (135055732, 135773292)

opps, not when I cut'n'paste the wrong line.  s/b,
  (135773292, 135773292)

> >>> a = a + 3,4
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
> TypeError: can only concatenate tuple (not "int") to tuple
> >>> a = a + (3,4)
> >>> a
> (1, 2, 3, 4)
> >>> id(a)
> 135523340
> >>> a += 5,6
> >>> a, b
> ((1, 2, 3, 4, 5, 6), (1, 2))
> >>> id(a), id(b)
> (135746564, 135773292)


- Bruce





More information about the Python-list mailing list