On 9 April 2018 at 01:01, Steven D'Aprano <st...@pearwood.info> wrote: > On Sun, Apr 08, 2018 at 09:25:33PM +1000, Nick Coghlan wrote: > >> I was writing a new stdlib test case today, and thinking about how I >> might structure it differently in a PEP 572 world, and realised that a >> situation the next version of the PEP should discuss is this one: >> >> # Dict display >> data = { >> key_a: 1, >> key_b: 2, >> key_c: 3, >> } >> >> # Set display with local name bindings >> data = { >> local_a := 1, >> local_b := 2, >> local_c := 3, >> } > > I don't understand the point of these examples. Sure, I guess they would > be legal, but unless you're actually going to use the name bindings, > what's the point in defining them?
That *would* be the point. In the case where it occurred to me, the actual code I'd written looked like this: curdir_import = "" curdir_relative = os.curdir curdir_absolute = os.getcwd() all_spellings = [curdir_import, curdir_relative, curdir_absolute] (Since I was testing the pydoc CLI's sys.path manipulation, and wanted to cover all the cases). >> I don't think this is bad (although the interaction with dicts is a >> bit odd), and I don't think it counts as a rationale either, but I do >> think the fact that it becomes possible should be noted as an outcome >> arising from the "No sublocal scoping" semantics. > > If we really wanted to keep the sublocal scoping, we could make > list/set/dict displays their own scope too. > > Personally, that's the only argument for sublocal scoping that I like > yet: what happens inside a display should remain inside the display, and > not leak out into the function. > > So that has taken me from -1 on sublocal scoping to -0.5 if it applies > to displays. Inflicting the challenges that comprehensions have at class scope on all container displays wouldn't strike me as a desirable outcome (plus there's also the problem that full nested scopes are relatively expensive at runtime). Cheers, Nick. -- Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/