why no ++?

Markus Schaber markus at schabi.de
Tue Aug 14 07:54:57 EDT 2001


Hi,

Michael Abbott <michael at rcp.co.uk> schrub:
 
> Oops!  Very true.  I should have rewritten it as

>      e = 'wow'
>      b,c,d = 'wow'
>      a = 'wow'

This still isn't exactly true.

Imagine, that the expression on the right side has side effects, than 
you shoud only evaluate it one time. 

And with the get/set operators that seem to emerge, access to instance 
variables also can have side effects, that means the order in which you 
assign is incorrect, as - at least according to chapter 6.3 of th 1.5.2 
reference manual - the assignment order is strictly left to right.

In those cases, one would have to write

  tmp = "wow"
  a = tmp
  b,c,d = tmp
  e = tmp
  del tmp

to acheive the same behaviour as in
  a = b,c,d = e = "wow"

(as long as I didn't miss anything)

> Hmm.  The argument about obfuscation versus repetition comes more
> clearly
> into focus.  I still think multiple assignment is a bad thing...

Then just don't use it :-)

I think it sometimes is a good thing to have, but you have to know 
about the exact semantics.


markus

-- 
1) Customers cause problems.
2) Marketing is trying to create more customers.
Therefore:
3) Marketing is evil.  (Grand Edwards in comp.lang.python)



More information about the Python-list mailing list