[Tutor] Inheritance help

sean_mcdaniel sean.m.mcdaniel at gmail.com
Wed Jul 2 20:50:57 CEST 2008


Hi y'all,

I found the problem. My __init__ statement in the subclass had an extra
underscore, which is why the baseclass __init__ was the only one called.

Duh!

Sean


sean_mcdaniel wrote:
> 
> 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-tp18240495p18244255.html
Sent from the Python - tutor mailing list archive at Nabble.com.



More information about the Tutor mailing list