[Tutor] OO newbie

BRINER Cedric work at infomaniak.ch
Fri Apr 8 10:55:11 CEST 2005


> > 1-
> > this exemple will also works if you replace the:
> > super(C,self).__init__( *args, **kw)
> > by
> > dict.__init__(self, *args, **kw)
> >
> > but I do not understand this dict.__init_... call.
> > Shouldn't you call the super class constructor??
> 
> super is just a convenience feature added to make Python slightly
> more like some other OOP languages. It is effectively just a
> wrapper around the explicit call to the super class:
> 
> Thus super(C,self...) is the same as
> 
> dict.__init__(self...)
after you telling me that dict.__init__(self...) should in your opinion
the way to do it.
I was not really happy because I did not understand at all this line.
I start looking at this line for a while before understanding it (2
hours maybe)...  :B

type(dict)
<type 'type'>
so dict is a class


dict.__init__ is the function to initialize a dictionnary
so
dict.__init__(self...) initialize the dictionnary `self'. Which work
because self derive from a dictionnary...

I got it !
I was really lost because I was not clearly making a difference between
the class: ``dict'' and an instance of it: ``dict()''

and thanks for your time.

Cedric BRINER



More information about the Tutor mailing list