[Python-ideas] Re : Undelivered Mail Returned to Sender

Mathias Panzenböck grosser.meister.morti at gmx.net
Tue Apr 28 23:46:44 CEST 2009


Pascal Chambon wrote:
>  >Mathias Panzenböck a écrit :
>  >
>  >Pascal Chambon wrote:
>  >>
>  >> I agree with the idea of auto-nesting "with", however in the case you
>  >> pointed out, the main problem was the early evaluation of context
>  >> managers ;
>  >> maybe a solution would be to delay the creation of context managers,
>  >> with something like a partial application (cf functools).
>  >>
>  >> Roughly, we'd need a "delayedNested" function, which takes 
> zero-argument
>  >> callables as parameters, and calls/instanciates them inside itself.
>  >>
>  >> Then just call* delayedNested(partial(A,...arguments...), partial(B,
>  >> ...arguments...))*/ /to have what you want.
>  >>
>  >
>  >
>  >It would be much shorter and more readable to manually nest the with 
> statements.
>  >
>  >  -panzi
> 
> 
> 
> Indeed, but the constructions we talk about would allow nesting dozens 
> of context managers without any problem ;
> Well then, you'll ask me "what kind of a perverse would need to 
> imbricate dozens of context managers ???" ; sincerely I don't know ^^
> 
> But since "flat is better than nested", even just for 2 or 3 context 
> managers, I feel a construct like "with A() as a, B() as b, C() as c:" 
> is anyway better than 3 nested with statements
> 

Yes I'm +1 for "with A() as a, B() as b, C() as c:", too.
For the deleyedNested(...) thing I'm -1 however.



More information about the Python-ideas mailing list