Simple object reference
Chris Rebert
clp2 at rebertia.com
Sat Nov 14 18:40:05 EST 2009
On Sat, Nov 14, 2009 at 3:25 PM, AON LAZIO <aonlazio at gmail.com> wrote:
> Hi, I have some problem with object reference
> Say I have this code
>
> a = b = c = None
> slist = [a,b,c]
Values are stored in the list, not references to names. Modifying the
list does not change what values the names a, b, and c have. There is
no Python-level notion of pointers.
> for i in range(len(slist)):
> slist[i] = 5
This modifies the contents of the list, it does not affect any other
variables/names.
> print slist
> print a,b,c
>
> I got this
> [5, 5, 5]
> None None None
>
> Question is how can I got all a,b,c variable to have value 5 also?
Use tuple unpacking:
#at start of code
slist = [None]*3
#...
#at end of code
a, b, c = slist
I would also recommend reading
http://effbot.org/zone/call-by-object.htm for a good explanation of
how Python's variables work.
Cheers,
Chris
--
http://blog.rebertia.com
More information about the Python-list
mailing list