Am 11.12.2015 um 17:39 schrieb Ian Kelly:
On Fri, Dec 11, 2015 at 9:24 AM, Robin Koch <robin.k...@t-online.de> wrote:
Assigning goes from right to left:
x,y=y,x=2,3
<=>
y, x = 2, 3
x, y = y, x
Otherwise the assignment x, y = y, x would not make any sense, since x and y
haven't any values yet.
And the execution from right to left is also a good choice, because one
would like to do something like:
x = y = z = 0
Again, assigning from left to right woud lead to errors.
No, it actually happens left to right. "x = y = z = 0" means "assign 0
to x, then assign 0 to y, then assign 0 to z." It doesn't mean "assign
0 to z, then assign z to y, etc."
Oh. Ok, then, thanks for this correction.
Although it's consequent to use left-to-right precedence it's a little
counter intuitive in the sense that the rightmost and leftmost objects
interact. Especially with a background in mathematics. :-)
> This works:
d = d['foo'] = {}
d
{'foo': {...}}
This doesn't:
del d
d['foo'] = d = {}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'd' is not defined
Good to know! Thank you.
--
Robin Koch
--
https://mail.python.org/mailman/listinfo/python-list