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

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()) ?


More information about the Python-Dev mailing list