[BangPypers] Nice "feature"

Ruchir Shukla ruchiryshukla at gmail.com
Fri Apr 1 15:30:29 CEST 2011


Hello,

This is just because you are changing the value of b and in foo there is a
reference of b.

while in
>>> foo = (1,[2,3,4])
>>> foo[1] += [6]
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> foo
(1, [2, 3, 4, 6])
>>>
it is changing the value in List but after that python has realized that the
error .

On Fri, Apr 1, 2011 at 6:54 PM, Roshan Mathews <rmathews at gmail.com> wrote:

> On Fri, Apr 1, 2011 at 18:44, Hussain Bohra <hussainbohra_30 at yahoo.com>
> wrote:
> > Atleast on changing list, you gets an exception.
> >
> > On updating dictionary living inside tuple wont throw an exception as
> well.
> >
> I thought the surprising part was that it threw an exception, not that
> it updated the list.  Even more surprising was that it threw the
> exception and updated the list too.
>
> >>> a, b = 1, [2, 3, 4]
> >>> foo = (a, b)
> >>> b += [5]
> >>> foo
> (1, [2, 3, 4, 5])
> >>>
>
>
>
> --
> http://about.me/rosh
> _______________________________________________
> BangPypers mailing list
> BangPypers at python.org
> http://mail.python.org/mailman/listinfo/bangpypers
>



-- 
----------------------------
Kind regards

Ruchir Shukla

Phone: +91 9099020687
ruchiryshukla at gmail.com; Ruchir Shukla <http://ruchir-shukla.blogspot.com/>


More information about the BangPypers mailing list