On Thursday, March 8, 2012 4:25:06 PM UTC+1, hyperboogie wrote: > My question is if __init__ in the descendant class overrides __init__ > in the parent class how can I call the parent's __init__ from the > descendant class - I just overrode it didn't I? > > Am I missing something more fundamental here?
No, you're not. However, you can explicitly call the __init__() method of a particular class. Hard-coding the class gives you: class A(object): def __init__(self): print("In A") class B(A): def __init__(self): A.__init__(self) print("In B") Alternatively you can figure out the parent class with a call to super: class C(A): def __init__(self): super(self.__class__, self).__init__() print("In C") a = A() (prints "In A") b = B() (prints "In A", "In B" on two lines) c = C() (prints "In A", "In C" on two lines) Hope this helps. Maarten -- http://mail.python.org/mailman/listinfo/python-list