[Python-Dev] PEP 343 update (with statement context terminology)

Aahz aahz at pythoncraft.com
Mon Apr 24 22:19:02 CEST 2006


On Mon, Apr 24, 2006, Phillip J. Eby wrote:
> At 12:49 PM 4/24/2006 -0700, Aahz wrote:
>>On Mon, Apr 24, 2006, Phillip J. Eby wrote:
>>> At 12:24 PM 4/24/2006 -0700, Aahz wrote:
>>>>On Mon, Apr 24, 2006, Phillip J. Eby wrote:
>>>>> At 04:48 AM 4/25/2006 +1000, Nick Coghlan wrote:
>>>>>>>>>>>>Using two names to describe three different things isn't intuitive for
>>>>>>anybody.
>>>>>>>>>> Um, what three things? I only count two:
>>>>>>>>>> 1. Objects with __context__
>>>>> 2. Objects with __enter__ and __exit__
>>>>>>>>>> What's the third thing?
>>>>>>>>The actual context that's used during the execution of BLOCK. It does
>>>>not exist as a concrete object,
>>>>>> Um, huh? It's a thing but it's not an object? I'm lost now. I don't see
>>> why we should introduce a concept that has no concrete existence into
>>> something that's hard enough to explain when you stick to the objects that
>>> actually exist. :)
>>>>Let's go back to a pseudo-coded with statement:
>>>> with EXPRESSION [as NAME]:
>> BLOCK
>>>>What happens while BLOCK is being executed? Again, here's what I said
>>originally:
>>>> EXPRESSION returns a value that the with statement uses to create a
>> context (a special kind of namespace). The context is used to
>> execute the BLOCK. The block might end normally, get terminated by
>> a break or return, or raise an exception. No matter which of those
>> things happens, the context contains code to clean up after the
>> block.
>>>>Do you have an alternate proposal for describing this that works well for
>>newbies?
>> No, I like your phrasing -- but it's quite concrete. EXPRESSION returns a 
> value (object w/__context__) used to create a context (object w/__enter__ 
> and __exit__).
>> That's only two things. There is no *third* thing here.

What is EXPRESSION, then? Not the value it returns, but EXPRESSION
itself -- does it have a name? What about the kinds of things we use
for EXPRESSION?
-- 
Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/
"Argue for your limitations, and sure enough they're yours." --Richard Bach


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /