[Python-Dev] generators and with

Duncan Booth duncan.booth at suttoncourtenay.org.uk
Sun May 13 18:47:17 CEST 2007

"tomer filiba" <tomerfiliba at gmail.com> wrote in
news:1d85506f0705130756j396a197bhf2f694d75ba06101 at mail.gmail.com: 

> why not add __enter__ and __exit__ to generator objects?
> it's really a trivial addition: __enter__ returns self, __exit__ calls
> close().
> it would be used to ensure close() is called when the generator is
> disposed, instead of doing that manually. typical usage would be:
> with mygenerator() as g:
>     g.next()
>     bar = g.send("foo")

You can already ensure that the close() method is called quite easily:

with contextlib.closing(mygenerator()) as g:
   bar = g.send("foo")

More information about the Python-Dev mailing list