7stud wrote: > When I run the following code and call super() in the Base class's > __init__ () method, only one Parent's __init__() method is called. > > > class Parent1(object): > def __init__(self): > print "Parent1 init called." > self.x = 10 > > class Parent2(object): > def __init__(self): > print "Parent2 init called." > self.y = 15 > > class Base(Parent1, Parent2): > def __init__(self): > super(Base, self).__init__() > self.z = 20 > > b = Base() > > --output:-- > Parent1 init called. > If you want super() to work for you then all your classes have to use it. There is only one call to an __init__() method in your definitions - Parent1 and Parent2 should also be calling their super().__init__().
regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com Skype: holdenweb http://del.icio.us/steve.holden --------------- Asciimercial ------------------ Get on the web: Blog, lens and tag the Internet Many services currently offer free registration ----------- Thank You for Reading ------------- -- http://mail.python.org/mailman/listinfo/python-list