and server to mix-in classes without constructorfor example it' also true that polymorphism in general assumes that the methods in an object' external interface have the same argument signaturethough this doesn' quite apply to customization of superclass methods--an internal implementation technique that should by nature support variationespecially in constructors but the crucial point here is that because direct calls do not make code dependent on magic ordering that can vary per treethey more directly support argument list flexibility more broadlythe questionable (or weakperformances super turns in on method replacementmix-in couplingcall orderingand argument constraints should make you evaluate its deployment carefully even in single-inheritance modeits potential for later impacts as trees grow is considerable in sumthe three requirements of super in this role are also the source of most of its usability issuesthe method called by super must exist--which requires extra code if no anchor is present the method called by super must have the same argument signature across the class tree--which impairs flexibilityespecially for implementation-level methods like constructors every appearance of the method called by super but the last must use super itself --which makes it difficult to use existing codechange call orderingoverride methodsand code self-contained classes taken togetherthese seem to make for tool with both substantial complexity and significant tradeoffs--downsides that will assert themselves the moment the code grows to incorporate multiple inheritance naturallythere may be creative workarounds for the super dilemmas just posedbut additional coding steps would further dilute the call' benefits--and we've run out of space here in any event there are also alternative non-super solutions to some diamond method dispatch problemsbut these will have to be left as user exercise for space reasons too in generalwhen superclass methods are called by explicit nameroot classes of diamonds might check state in instances to avoid firing twice-- similarly complex coding patternbut required rarely in most codeand which to some may seem no more difficult than using super itself the super summary so there it is--the bad and the good as with all python extensionsyou should be the judge on this one too 've tried to give both sides of the debate fair shake here to help you decide but because the super calldiffers in form between and advanced class topics