After playing around with the super keyworld in Python, I finally stumbled across this question which helped explain some multiple inheritence, with arguments. This also helped me to understand the use of super in Python and how to whole thing links together. I edited the original answer to the question as I found Python complaining about the arguments being passed into the last __init__.
class Mother(object):
def __init__(self, p_mother, **more):
print "Mother", p_mother, more
self.p_mother = p_mother
super(Mother, self).__init__(p_mother=p_mother, **more)
def hello(self):
print "Hello %s" % self.p_mother
class Father(object):
def __init__(self, p_father, **more):
print "Father", p_father, more
self.p_father = p_father
super(Father, self).__init__()
def world(self):
print "World %s" % self.p_father
def hello(self):
print "Hello %s" % self.p_father
class Child(Mother, Father):
def __init__(self, p_mother, p_father, **more):
print "Child", p_father, p_mother, more
super(Child, self).__init__(p_mother=p_mother, p_father=p_father,
**more)
if __name__ == '__main__':
c = Child("Mother", "Father")
c.hello()
c.world()