[Python-Dev] PEP 343 - Abstract Block Redux
Nick Coghlan
ncoghlan at gmail.com
Sat May 14 12:27:43 CEST 2005
Fredrik Lundh wrote:
> unlike the original design, all you get from this is
> the ability to add try/finally blocks to your code
> without ever writing a try/finally-clause (neither
> in your code or in the block controller). that
> doesn't strike me as especially pythonic.
I think the key benefit relates to the fact that correctly written resource
management code currently has to be split it into two pieces - the first piece
before the try block (e.g. 'lock.acquire()', 'f = open()'), and the latter in
the finally clause (e.g. 'lock.release()', 'f.close()').
PEP 343 (like PEP 310 before it) makes it possible to define the correct
resource management *once*, and then invoke it via a 'with' (or 'do') statement.
Instead of having to check for "is this file closed properly?", as soon as you
write or see "with open(filename) as f:", you *know* that that file is going to
be closed correctly.
Cheers,
Nick.
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
---------------------------------------------------------------
http://boredomandlaziness.blogspot.com
More information about the Python-Dev
mailing list