[Python-Dev] chained assignment weirdity
ncoghlan at gmail.com
Tue Nov 6 13:01:14 CET 2012
As noted, it's really only counterintuitive if your intuition is primed to
expect C style right to left chained assignments.
Python, on the other hand, is able to preserve primarily left to right
evaluation in this case with only the far right hand expression needing to
be evaluated out of order.
One example that can really make the intended behaviour clear:
*a = *b = iter(range(3))
a ends up as (0,1,2), b ends up as (), because the first assignment
consumes the entire iterable.
My actual advice, though? If the order of assignment really matters, use
multiple assignment statements rather than relying on readers knowing the
Sent from my phone, thus the relative brevity :)
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-Dev