On 5/12/07, Steven Bethard <[EMAIL PROTECTED]> wrote: > And here's a version that doesn't lose updates to the finalizer attributes: > > http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/519635 > > It replaces enable_finalizer() with a class attribute __finalattrs__. > >From __finalize__, all class attributes and methods are accessible, as > are any instance attributes specified by __finalattrs__. Guido's > BufferedWriter example looks like:: > > class BufferedWriter(Finalized): > __finalattrs__ = 'buffer', 'raw' > ... > def flush(self): > self.raw.write(self.buffer) > self.buffer = b"" > > def __finalize__(self): > self.flush()
But can I subclass it and in the subclass override (extend) flush()? E.g. class MyWriter(BufferedWriter): def flush(self): super(MyWriter, self).flush() # Or super.flush() once PEP xxx is accepted print("Feel free to unplug the disk now") -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com