On Thu, Jul 5, 2018 at 9:52 AM, Mike Miller <python-...@mgmiller.net> wrote: > Compromise: > > Fortunately there is a compromise design that is chosen often these days in > new languages---restricting these assignments to if/while (potentially > comp/gen) statements. We can also reuse the existing "EXPR as NAME" syntax > that already exists and is widely enjoyed. > > This compromise design: > > 1 Handles the most common cases (of a group of infrequent cases) > 0 Doesn't handle more obscure cases. > 1 No new syntax (through reuse) > 1 Looks Pythonic as hell > 1 Difficult to misuse, complexity capped > > Score: 4/5
PLEASE can people stop rehashing this one and go and read previous discussions and the PEP? Your first point is a failure, not a success - the "if expr as name:" syntax is able to handle only the tiniest proportion of cases, because many MANY situations require a condition after that. You can't write this, for instance: if f(x) as spam < 0: print(spam) So it fails the first, fails the second, is identical on the third (it's still new syntax, just reusing a keyword - that's no better than ":="), is dubious on the fourth (Python uses "as NAME" for things that are quite different from this, so it's confusing), and scores a definite win only on the fifth - it's hard to misuse because it's nerfed to oblivion. This is old news. It's not a compromise design - it's a failed previous iteration that is already mentioned in the PEP. ChrisA _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com