Exceptions and Object Destruction (was: Problem with apsw and garbage collection)
steven at REMOVE.THIS.cybersource.com.au
Wed Jun 17 21:43:37 EDT 2009
On Wed, 17 Jun 2009 07:49:52 -0400, Charles Yeomans wrote:
>> Even CPython doesn't rely completely on reference counting (it has a
>> fallback gc for cyclic garbage). Python introduced the "with"
>> statement to get away from the kludgy CPython programmer practice of
>> opening files and relying on the file being closed when the last
>> reference went out of scope.
> I'm curious as you why you consider this practice to be kludgy; my
> experience with RAII is pretty good.
Because it encourages harmful laziness. Laziness is only a virtue when it
leads to good code for little effort, but in this case, it leads to non-
portable code. Worse, if your data structures include cycles, it also
leads to resource leaks.
More information about the Python-list