initializing mutable class attributes

Dan Perl dperl at
Wed Sep 1 18:19:57 CEST 2004

Sorry, Anthony, but I don't think that is relevant for my example.  I wasn't
referring to replacing the superclass with another one, which is where
'super( )' would have been useful because it detects the superclass only at
run-time.  I was referring to changing the implementation of the superclass,
in which case 'super( )' doesn't make any difference.

See, however, a posting from Jorge Godoy, where he makes the great point
that the problem is removed by always subclassing the base class from
'object'.  So the new-style class mechanism is taking care of this problem.


"Anthony Baxter" <anthonybaxter at> wrote in message
news:mailman.2726.1094051698.5135.python-list at
> On Wed, 01 Sep 2004 14:54:06 GMT, Dan Perl <dperl at> wrote:
> > Not in Python.  A user of my library has to invoke the parent's class
> > __init__ in their own __init__.  What happens if, in a future release, I
> > rid of the __init__ in the parent class?  Or the other way around.  An
> > release does not have a parent __init__, the users don't invoke it
> > they can't, and then, in a future release, I add the parent __init__
> > I added some attributes.  It breaks all the users' code.  This is poor
> > encapsulation.
> Use 'super()', in that case.

More information about the Python-list mailing list