[Nick Coghlan <ncogh...@gmail.com>] > The issue is that because name binding expressions are just ordinary > expressions, they can't be defined as "in comprehension scope they do X, in > other scopes they do Y" - they have to have consistent scoping semantics > regardless of where they appear.
While I'm not generally a fan of arguments, I have to concede that's a really good argument :-) Of course their definition _could_ be context-dependent, but even I'll agree they shouldn't be. Never mind! > However, it occurs to me that a nonlocal declaration clause could be allowed > in comprehension syntax, regardless of how any nested name bindings are > spelt: > > p = rem = None > while any((rem := n % p) for p in small_primes nonlocal (p, rem)): > # p and rem were declared as nonlocal in the nested scope, so our > rem and p point to the last bound value > > I don't really like that though, since it doesn't read as nicely as being > able to put the nonlocal declaration inline. If the idea gets traction, I'm sure we'll see 100 other syntax ideas by the time I wake up again. _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/