[Python-ideas] with-statement syntactic quirk
ncoghlan at gmail.com
Thu Nov 1 23:41:37 CET 2012
On Nov 2, 2012 8:06 AM, "Yuval Greenfield" <ubershmekel at gmail.com> wrote:
> On Thu, Nov 1, 2012 at 1:40 PM, Nick Coghlan <ncoghlan at gmail.com> wrote:
>> I've been remiss in not mentioning the new alternative in 3.3 for
>> handling nesting of complex context management stacks:
>> with contextlib.ExitStack() as cm:
>> p1 = cm.enter_context(open('/etc/passwd'))
>> p2 = cm.enter_context(open('/etc/passwd'))
>> (Note: ExitStack is really intended for cases where the number of
>> context managers involved varies dynamically, such as when you want to
>> make a CM optional, but you *can* use it for static cases if it seems
> Go's "defer" is quite a neat solution for these hassles if anyone's in
the mood for a time machine discussion.
Go was one of the reference points for the ExitStack design (it's a large
part of why the API also supports providing callbacks directly to the exit
stack, not just as context managers).
Sent from my phone, thus the relative brevity :)
> Yuval Greenfield
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-ideas