class a(object): def __init__(self): print "a" super(a, self).__init__() pass class b(a): def __init__(self, foon='hooha'): print "b, foon=%s" % foon super(b, self).__init__() class c(a): def __init__(self): print "c" super(c, self).__init__() class d(c,b): def __init__(self, **kwargs): print "d" super(d, self).__init__(**kwargs) d() d(foon="blah")