[Tutor] Little subclass understanding problem

Kent Johnson kent37 at tds.net
Thu Nov 15 20:26:55 CET 2007

Tom wrote:
> I am trying to understand what happens in the following scenario:
> class Sub_class(Base_class):
>     def __init__(self, data):
>         Base_class.__init__(self, data)
> as in:
> # snippet from http://viner.tv/go?set
> class Set(list):
>     def __init__(self, value = []):
>         list.__init__([])

This is a bug, it should be
   list.__init__(self, value)

> I have just re-read the relevant part of Wesley Chun's 'Core' book,
> again, and think I *may* understand.
> Base_class.__init__(self, data)
> is *kind of* like saying:
> self.Base_class.__init__(data)
> i.e. it's doing something *to* self. 

Yes, that is more or less correct.

In general, if c is an instance of class C, a method call

can also be written as

When you want to call a base class method, you have to use the second 
form. That is what
is doing.


More information about the Tutor mailing list