At 09:25 AM 4/22/2006 -0700, Aahz wrote: > 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. > > The as NAME part is optional. If you include it, you can use NAME > in your BLOCK > >Then a bit later: > > The protocol used by the with statement is called the context > management protocol, and objects implementing it are context > managers.
Okay, which means that you agree with AMK and Paul Moore that the thing you pass to "with" is a context manager, and the thing that controls execution is a context. Was that conclusion independently arrived at, or based on reading e.g. the docs I wrote? Obviously, if you guys came up with that terminology on your own, that's a stronger vote in its favor. Btw, the phrase "special kind of namespace" seems wrong to me, since there are no names in a context, and that phrase makes it sound like you get a new scope. Looks to me like you could replace the word "namespace" with "object" without changing the intended effect. (That is, I assume the intended effect was merely to point out you're introducing a new term that the reader is not yet expected to know.) _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com