On Friday, December 11, 2015 at 10:27:29 AM UTC-8, Jussi Piitulainen wrote: > ICT Ezy writes: > > On Friday, December 11, 2015 at 8:40:18 AM UTC-8, Ian wrote: > >> > >> 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." 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 > > > > Deat Ian, > > Thank you very much your answer, but > > above answer from Robin Koch and your answer is different. What's the > > actually process here? I agree with Robin Koch, but your answer is > > correct. Pl explain differences ? > > Python language reference, at 7.2 Assignment statements, says this: > > # An assignment statement evaluates the expression list (remember that > # this can be a single expression or a comma-separated list, the latter > # yielding a tuple) and assigns the single resulting object to each of > # the target lists, from left to right. > > To simplify a bit, it's talking about a statement of this form: > > target_list = target_list = target_list = expression_list > > And it says what Ian said: the value of the expression is assigned to > each target *from left to right*. > > <https://docs.python.org/3/reference/simple_stmts.html#assignment-statements>
Yes you correct! -- https://mail.python.org/mailman/listinfo/python-list