why is this invalid b = a += b ?

MRAB google at mrabarnett.plus.com
Sun Jan 25 00:36:55 CET 2009


Stef Mientki wrote:
> hello,
> 
> I can assign a value to more than 1 variable (name) in one line:
> 
> a = b = 3
> 
> So evaluation of this line must start at the right part.
> 
> But the following is not allowed:
> 
> b = 2
> a = b += 1
> 
> I would think that if b has a value, and the formula is evaluated
> from right to left, there's nothing wrong with the above formula.
> 
Assignment is a statement, not an expression. That's why:

     if a = 0:
         ...

is illegal.

However, simple serial assignment such as:

     a = b = 3

is useful enough to be supported as a special case.



More information about the Python-list mailing list