On 25 April 2018 at 03:01, Tim Peters
assignment statement buried deep inside expressions. But in conventional use, "binding" is restricted to identifiers, which vastly simplifies the mental model for "the worst" that can happen.
[snip]
But, in the absence of Guido chiming in, it's really up to you. A few people have expressed positive feelings about changing the name to "binding expressions", and none opposed it (that I saw), but the sample size is too small to claim that "proves" anything.
I go back and forth, as I suspect even if we call them "name binding expressions" in the language reference (which I think would be a good idea), they'll often be referred to colloquially as "assignment expressions". That's probably OK though - list displays and dict displays are regularly referred to as literals, and the meaning remains clear, even though the use of literal is technically inaccurate. I also think it would be good for the PEP to spell out the following semantic invariant for code running in a regular namespace: _rhs = expr assert (target := _rhs) is _rhs and target is _rhs It's the restriction to single names as targets that makes it possible to impose such a strong assertion about what the syntax means. Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia