<div dir="ltr"><div class="gmail_quote"><div dir="ltr">[Guido]<br>> ..<br>> Given that definition of `__parentlocal`, in first approximation the</div><div dir="ltr">> scoping rule proposed by PEP 572 would then be: In comprehensions<br>> (which in my use in the PEP 572 discussion includes generator</div><div dir="ltr">> expressions) the targets of inline assignments are automatically<br>> endowed with a `__parentlocal` declaration, except inside the<br>> "outermost iterable" (since that already runs in the parent scope).</div><br>If this has to be done ;-) , I suggest removing that last exception.  That is, "[all] targets of inline assignments in comprehensions are declared __parentlocal", period, should work fine for (b).  In case one appears in the outermost iterable of the outermost comprehension, I believe such declaration is merely semantically redundant, not harmful.<br><br>Where "redundant" means someone is so familiar with the implementation that the scope implications of "already runs in the parent scope" are immediately clear.  For someone muddy about that, it would be a positive help to have the intent clarified  by removing the exception.<br><br>Plus 99% of the point of "parentlocal" seemed to be to allow mindless ("uniform") by-hand translation of nested comprehensions to nested Python functions, and an exception for the outermost iterable would work against that intent.<br><br></div></div>