with statement

Ian Kelly ian.g.kelly at gmail.com
Thu Apr 19 18:18:09 EDT 2012


On Thu, Apr 19, 2012 at 3:33 PM, Terry Reedy <tjreedy at udel.edu> wrote:
> On 4/19/2012 1:15 PM, Kiuhnm wrote:
>>
>> A with statement is not at the module level only if it appears inside a
>> function definition or a class definition.
>
>
> This is true, I believe, of all statements.
>
>> Am I forgetting something?
>
>
> Comprehensions (in Py3) and lambda expressions also introduce new local
> scopes -- because they are abbreviated def statements. But they cannot
> contain statements, only expressions, in that new scope.

Syntactically, that's true.  However, lambdas and comprehensions are
just functions and generator functions under the hood, so in principle
there is nothing preventing with blocks from being injected into their
byte code.



More information about the Python-list mailing list