For what it's worth, i'm totally +1 on inline uses of global and nonlocal. As a related improvement, i'd also like it if "global x = 5" would be a legal statement. As a noob learning python, I was suprised to find out I couldn't and had to split it on two lines.(aside from a 9-hour course of C and some labview (which I totally hate), python was my first language and still the one im by far most proficient with.)
2018-05-07 6:04 GMT+02:00 Tim Peters <tim.pet...@gmail.com>: > [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/ _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/