[Python-Dev] Must objects with enter/exit also supply context? (original) (raw)

Phillip J. Eby pje at telecommunity.com
Wed Apr 26 05:39:01 CEST 2006


At 11:29 PM 4/25/2006 -0400, Phillip J. Eby wrote:

See, if @contextfactory functions return a thing with a context method, how is that usable with "with"? It isn't, unless the thing also happens to have enter/exit methods. This was the hole in the documentation that caused Nick to seek to revisit the decorator name in the first place.

Argh. I seem to be tongue-tied this evening. What I mean is, if @contextfactory functions' return value is usable as a "with" expression, that means it must have a context method. But, if you are using @contextfactory to define a context method, the return value should clearly have enter and exit methods.

What this means is that if we describe the one method and the two methods as independent things, there is no single name we can use to describe the return value of a @contextfactory function. It's a wave and a particle, so we either have to start talking about "wavicles" or have some detailed explanation of why @contextfactory function return values are both waves and particles at the same time.

However, if we say that particles are a kind of wave, and have all the same features as waves but just add a few others, then we can simply say @contextfactory functions return particles, and the waviness is implied, and all is right in the world. At least, until AMK comes along and asks why you can't separate the particleness from the waveness, which was what started this whole thing in the first place... :)



More information about the Python-Dev mailing list