"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

Reply via email to