On 20/11/2019 15:28, Richard Damon wrote:

On Nov 20, 2019, at 7:50 AM, Rhodri James <rho...@kynesim.co.uk> wrote:
As context managers, yes, lazy managers make chaining them easier because there's no mess to clean 
up if the chain breaks while you are creating it.  On the other hand, eager managers like open() 
can be used outside a "with" statement and still manage resources perfectly well for a 
lot of cases.  It a matter of fitness for different purposes, so even "preferable" is a 
relative term here.
>>
To my mind, eager context managers nest just fine, if you put each into their 
own context. What it seems the lazy managers let you do is squish multiple 
context managers into a single context, but then you get the question of which 
of them actually is providing the context that you are in?

This is just semantics. Other people have meant by "nest" what you and I meant by "squish" and "chain" respectively. Once squished, all of the context managers are providing/contributing to the context you are in, which is a new and different context all its own. We could write an explicit squisher class now, but syntactical help for an implicit squisher would be nice.

--
Rhodri James *-* Kynesim Ltd
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@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/LD5FWIITE4GRWTQW26CMRKEBDYYVQCMJ/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to