On Sun, Nov 20, 2016 at 10:47 PM, Bev in TX <countryon...@gmail.com> wrote:
> From the Python 3.5.2 docs:
>
> 6.15. Evaluation order
> Python evaluates expressions from left to right. Notice that while
> evaluating an assignment, the right-hand side is evaluated before the
> left-hand side.
>
> Thus, spam = eggs = cheese = obj is equivalent to:
>
> spam = (eggs = (cheese = obj))

Except that that's not how it's parsed. Assignment in Python isn't an
operator. You cannot run the parenthesized version:

>>> spam = (eggs = (cheese = obj))
  File "<stdin>", line 1
    spam = (eggs = (cheese = obj))
                 ^
SyntaxError: invalid syntax

Chained assignment is a special piece of syntax.

https://docs.python.org/3/reference/simple_stmts.html#assignment-statements

You're not evaluating one assignment and then another; it's a single
assignment statement that has a target_list. Scroll down a little in
that page and you'll see an example that specifically points this out.

ChrisA
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to