[Python-Dev] generalized resource alloc and de-alloc
Greg Ewing
greg@cosc.canterbury.ac.nz
Wed, 20 Mar 2002 12:36:24 +1200 (NZST)
Gareth McCaughan <gmccaughan@synaptics-uk.com>:
> with LHS=EXPR:
> BODY
>
> is the same as
>
> TEMPNAME=EXPR
> LHS=TEMPNAME.begin()
> try:
> BODY
> finally:
> TEMPNAME.end()
I like the simplicity of this as compared to the "under"
proposal.
Here's an even simpler version:
with LHS = EXPR:
BODY
is equivalent to
LHS = EXPR
try:
BODY
finally:
del LHS
with TEMPNAME substituted for LHS if the latter is is omitted.
As a bonus, this would double as a means of introducing a
local name with restricted scope.
In fact, you could turn it around and describe it as a facility for
introducing local names with restricted scope, with one application of
using it as a resource-acquisition control structure.
Greg Ewing, Computer Science Dept, +--------------------------------------+
University of Canterbury, | A citizen of NewZealandCorp, a |
Christchurch, New Zealand | wholly-owned subsidiary of USA Inc. |
greg@cosc.canterbury.ac.nz +--------------------------------------+