[Python-3000] PEP: Eliminate __del__

Greg Ewing greg.ewing at canterbury.ac.nz
Sun May 13 03:52:42 CEST 2007

Steven Bethard wrote:

> Yep. The 'self' passed to __finalize__ is still an instance of the
> same class (e.g. BufferedWriter or MyWriter). So inheritance works
> normally:

However, if the overridden method uses any attributes
not mentioned in the original __finalattrs__, they
will need to be added to it somehow.

It might be useful if the metaclass gathered up the
contents of __finalattr__ from the class and all its
base classes. Then a class could just list its
own needed attributes without having to worry about
those needed by its base classes.

This also suggests that some care will be needed when
overriding methods of a class that uses this recipe.
You need to know whether the method can be called from
the finalizer, so you can be sure to include the
appropriate attributes in __finalattrs__.


More information about the Python-3000 mailing list