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 assignment order. Cheers, Nick. -- Sent from my phone, thus the relative brevity :)
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com