"Nick Coghlan" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > The main outcome of the PEP 343 terminology discussion was some proposed > documentation I put on the Sourceforge patch tracker ([1]).
Is this a proposal for the Language Reference manual? > [1] http://www.python.org/sf/1234057 > ========================================== > With Statements and Context Management > > A frequent need in programming ... > > A simpler way to achieve this in Python is to use the 'with' statement > along with the appropriate context manager. Somewhere about here we need the syntax itself. > Context managers define an... > the contained suite starts. If the 'as' clause of the 'with' Else this does not mean much. ... > The simplest use of context management is to strictly control the > handling of key resources (such as files, generators, database > connections, synchronisation locks). I have a little trouble seeing generators (as opposed to iterables) as resources needing management. > For example, the following context manager allows prompt closure of > any resource with a 'close' method (e.g. a generator or file): And I was not aware that they had close methods. You mean a iterable (not just a file) with both an associated generator and a close? Or are generators gaining close methods (which make no sense to me). Or are you using 'generator' in a different sense? > class closing(object): > def __init__(self, resource): > self.resource = resource > > def __enter__(self): > return self.resource > > def __exit__(self, *exc_info): > self.resource.close() > > > with closing(my_generator()) as g: > # my_generator() is assigned to g via call to __enter__() > for item in g: > print item > # g is closed as the with statement ends To me, this should be with closing(my_iterable())... with 'for' calling g.__iter__ to get the iterator that is possibly a generator. Otherwise, I don't understand it. The rest is pretty clear. Terry J. Reedy _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com