Alan Gauld wrote:
"Lie Ryan" <lie.1...@gmail.com> wrote
I was a bit surprised this doesn't work though:
a, b += k, k
What would you expect?
I expect
a, b += c, d
to be
a += c; b += d
just like
a, b = c, d
to be
a = c; b = d
Remember that
a,b = c,d
is just tuple assignment without using parens (and parens are not part
of the tuple definition)
So using tuples
a,b += k,k
would unwrap as
a,b = (a,b) + (k,k) -> (a,b,k,k)
which should give an error since we are then unpacking 4 values
into two...
It doesn't really make sense.
That makes sense.
I agree "a, b += k, k" is rather ambiguous.
I disagree with the finer points of the explanation though, because in:
a, b += c, d
a, b is not really a tuple, but rather ltuple (as in a += b; a is the
lvalue and be is the value). ltuple could (and probably should) have a
different semantic for in-place assignment rather than the (current)
non-sensical appending the ltuple with the value tuple. No?
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor