[Tutor] Inheritance help

sean_mcdaniel sean.m.mcdaniel at gmail.com
Wed Jul 2 19:30:45 CEST 2008


Thank you for the reply.

I have made the substitution, but I still receive the same error. I
previously defined the __init__ statements in the old way, i.e.

FileParse.__init__(self)

but with the same problematic outcome. 

Thank you,

Sean


Lie Ryan wrote:
> 
>> Hi Folks,
>> 
>> I can redefine the class and I get a "TypeError: __init__() takes
>> exactly 1
>> argument (2 given)" error.  I'm creating a SinglePeakFit object and
>> not a
>> FileParse one. Still puzzled...
> 
> In this:
> 
> class SinglePeakFit(FileParse):
>     ...
>     def __init___(self, filename):
>         print "I am here!"
>         super(FileParse,self).__init__()
>     ...
> ...
> 
> You called the __init__ of FileParse's superclass(es), i.e.
> object.__init__
> 
> What you wanted is this:
> 
> class SinglePeakFit(FileParse):
>     ...
>     def __init___(self, filename):
>         print "I am here!"
>         super(SinglePeakFit,self).__init__()
>     ...
> ...
> 
> which calls the superclass(es) of SinglePeakFit, i.e. FileParse.__init__
> 
> Anyway, you don't actually need to use super() unless your class use
> multiple inheritance. And even the en it is only really required if
> there is 'diamond'-shaped inheritance, like: A(object), B(A), C(A), D(A,
> B). But it is good practice to use super for any multiple inheritance,
> even though it's not diamond shaped (actually all cases of multiple
> inheritance is diamond shaped since all (new-style) classes inherits
> from object).
> 
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
> 
> 

-- 
View this message in context: http://www.nabble.com/Inheritance-help-tp18240495p18242833.html
Sent from the Python - tutor mailing list archive at Nabble.com.



More information about the Tutor mailing list