List sequential initialization

Steve Holden steve at holdenweb.com
Mon Jun 18 21:46:54 EDT 2007


Chris Mellon wrote:
> On 6/12/07, HMS Surprise <john at datavoiceint.com> wrote:
>> Thanks for the explaination. It didn't seem natural and from the
>> tutorial I read:
>>
>>     A value can be assigned to several variables simultaneously:
>>
>>     >>> x = y = z = 0  # Zero x, y and z
>>
>>
>> Maybe I infer too much....
>>
> 
> And yet, your answer is right there.
> 
> "A value can be assigned to several variables simultaneously"
> 
> When you say want a value assigned to several variables, Python
> doesn't assume that you actually mean you want 2 different values
> assigned to them.

The crucial difference between

a = b = "ab"
a = "a"

and

a = b = ['a', 'b']
a.append('c')

is that in the first case two names are bound to the immutable object 
"ab". Then the first name is rebound to a different immutable object.

In the second example, both names are bound to the same mutable object, 
a list. That object is then modified. The modification can be performed 
using either name, and both names continue to point to the same (but now 
mutated) object.

regards
  Steve
-- 
Steve Holden        +1 571 484 6266   +1 800 494 3119
Holden Web LLC/Ltd           http://www.holdenweb.com
Skype: holdenweb      http://del.icio.us/steve.holden
--------------- Asciimercial ------------------
Get on the web: Blog, lens and tag the Internet
Many services currently offer free registration
----------- Thank You for Reading -------------




More information about the Python-list mailing list