working with pointers

Rocco Moretti roccomoretti at hotpop.com
Tue May 31 15:21:34 EDT 2005


> "Dave Brueck" <dave at pythonapocrypha.com> wrote in message
> news:mailman.299.1117566077.18027.python-list at python.org...
> 
>>Michael wrote:
>>
>>>sorry, I'm used to working in c++ :-p
>>>
>>>if i do
>>>a=2
>>>b=a
>>>b=0
>>>then a is still 2!?
>>>
>>>so when do = mean a reference to the same object
>>
>>Always.
>>
>>
>>>and when does it mean make a copy of the object??
>>
>>Never.
>>

Michael wrote:
 > except numbers??
 >

1) Please avoid top posting

2) '=' always makes a reference. It's just that

'b = 0' makes a *new* reference for b to 0, without changing the 
reference of a to 2.

b.pop() modifies the object referenced by b itself, which, since it is 
referenced by both a & b, means that the object referenced by a is also 
modified.

see also:

http://starship.python.net/crew/mwh/hacks/objectthink.html



More information about the Python-list mailing list