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> -- https://mail.python.org/mailman/listinfo/python-list