You should expand a bit. How is that better than with open(..) as a, open(..) as b: ?
On 12 Jul 2019, at 15:27, haael <haael@interia.pl> wrote:
Could we add __enter__ and __exit__ to the tuple type?
Look at the following code:
a = open('a.tmp', 'w') b = open('b.tmp', 'w')
with (a, b) as (af, bf): af.write("1") bf.write("2")
Even better example:
with tuple(open(str(_n) + '.tmp', 'w') for _n in range(1000)) as f: for n, fn in enumerate(f): f.write(str(n))
Tuple as context manager would invoke __enter__ for each of its elements and return a tuple of the results.
On exit, the __exit__ method would be invoked for every element.
We could even generalize it to every kind of iterable.
This is somewhat consistent with treatment of exception types in 'except' clause.
try: something() except Exception1 as error: handlerA(error) except (Exception2, Exception3) as error: handlerB(error)
Tuple of exception types is accepted in 'except' clause, as well as a single exception type. We could apply that rule to the 'with' clause. _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-leave@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/QCYHV6... Code of Conduct: http://python.org/psf/codeofconduct/