solution this is the first solution__init__ function of two classes are invoked explicitly the only problem here is that the solution does not depend on the order of inheritancebut on the order of invocationi if we exchange the lines and the solution will change mathproblem py class plus (object)def __init__(selfvalue)self value value class multiply (object)def __init__(selfvalue)self value value class solution(multiply plus )def __init__(selfvalue)self value value multiply __init__(selfself valueplus __init__(selfself values solution( print( value problem with super one of the problem with super is thatthe top level super(function does not work if it has some input arguments if we look the output of following code carefullythen we will find that error is generated after reaching to class plus when class plus uses the super()then it calls the metaclass' ( object__init__ functionwhich does not take any argument hence it generates the error 'object __init__(takes no parametersto solve this problemwe need to create another class as shown in next section mathproblem py class plus (object)def __init__(selfvalue)print("plus reached"self value value super(__init__(self valueprint("bye from plus "class multiply (object)def __init__(selfvalue)print("multiply reached"self value value super(__init__(self valueprint("bye from multiply "class solution(multiply plus )def __init__(selfvalue)self value value super(__init__(self value(continues on next page inheritance with super