Josh Rosenberg added the comment:

And for this particular case, even if the resource allocators don't support the 
context manager protocol, contextlib.closing can do the job:

    from contextlib import closing

    with closing(allocateresource1()) as resource1, 
closing(allocateresource2()) as resource2:
        dostuffthatmightthrowexception()

If it's not a simple as calling close, you can write your own simple manager 
wrapper that calls some other cleanup function use @contextlib.contextmanager.

----------
nosy: +josh.rosenberg

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue21067>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to