[Python-Dev] Informal educator feedback on PEP 572 (was Re: 2018 Python Language Summit coverage, last part) (original) (raw)

Chris Angelico rosuav at gmail.com
Wed Jun 27 03:52:16 EDT 2018


On Wed, Jun 27, 2018 at 5:30 PM, Paul Moore <p.f.moore at gmail.com> wrote:

But test() returns [1, 2]. So does that say (as you claim above) that "the comprehension ran in the enclosing scope"? Doesn't it just say that the outermost iterable runs in the enclosing scope?

Yes - because the outermost iterable runs in the enclosing scope. But suppose you worded it like this:

def test(): a = 1 b = 2 vars = {key: locals()[key] for key in locals()} return vars

What would your intuition say? Should this be equivalent to dict(locals()) ?

ChrisA



More information about the Python-Dev mailing list