[Python-Dev] Terminology for PEP 343

Phillip J. Eby pje at telecommunity.com
Mon Jul 4 18:33:20 CEST 2005


At 11:48 PM 7/3/2005 -0400, Raymond Hettinger wrote:
>Remember,
>these methods are going to show up in objects such as Context which are
>not primarily about 343.  All of the other methods names will have
>nothing to do with 343, so our choice of magic names needs to be really
>good (as there will likely be NO contextual hints).

with context_expression as variable:
     # perform actions within a context

The "with" statement establishes a context in which some operations are to 
be performed.  Often, this is a resource management context, wherein some 
resource is allocated when the context is entered, and when it is 
exited.  Or it may be a locking context, where a lock is acquired and 
released around the statements.  Or it may be a computational context, such 
as a Decimal context that controls the precision of decimal 
calculations.  In fact, it may be any context that can be defined in terms 
of behavior to be performed when the context is entered and exited.

The object produced by 'context_expression' must have __enter_context__ and 
__exit_context__ methods, which will be invoked by the "with" statement 
when the context is entered, and when it is exited for any reason (such as 
by an exception, "return" statement, or other control flow statements).

...etc.



More information about the Python-Dev mailing list