Rudy,

I think your proposal may be very specific to iterable context managers;
in which case, make a method that makes that assumption:

> def iter_with(obj):
>     with obj as context:
>         yield from context

and use it

> g = (
>     f.read()
>     for fn in filenames
>     for f in iter_with(open(fn))
> )

On 2018-07-30 15:15, Rudy Matela wrote:
> Hello,
>
> Do you think it would be nice to allow with statements inside genexps or
> list comprehensions?  The functions __enter__ and __exit__ would be
> automatically called as iterables are traversed.  I am thinking of
> drafting a PEP about this.  Examples:
>
>
> This 
>
>       g = (f.read() for fn in filenames with open(fn) as f)
>
> would be equivalent to the following use of a generator function:
>
>       def __gen():
>               for fn in filenames:
>                       with open(fn) as f:
>                               yield f.read()
>       g = __gen()
>
>
> This
>
>       list = [f.read() for fn in filenames with open(fn) as f]
>
> would be equivalent to the following:
>
>       list = []
>       for fn in filenames:
>               with open(fn) as f:
>                       list.append(f.read())
>
> --
> Rudy
> _______________________________________________
> Python-ideas mailing list
> Python-ideas@python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/

_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to