On Friday, December 11, 2015 at 9:53:10 AM UTC-8, Robin Koch wrote: > 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
Yeh, Your discussion is very good, really I understood correct process, Thank you very much all of you! -- https://mail.python.org/mailman/listinfo/python-list