help on "from deen import *" vs. "import deen"

Chris Angelico rosuav at gmail.com
Sun Nov 20 07:42:50 EST 2016


On Sun, Nov 20, 2016 at 10:47 PM, Bev in TX <countryone77 at 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



More information about the Python-list mailing list