methods the second of these search rules is explained fully in the new-style class discussion in the next though difficult to understand without the next code (and somewhat rare to create yourself)diamond patterns appear when multiple classes in tree share common superclassthe new-style search order is designed to visit such shared superclass just onceand after all its subclasses in either modelthoughwhen class has multiple superclassesthey are searched from left to right according to the order listed in the class statement header lines in generalmultiple inheritance is good for modeling objects that belong to more than one set for instancea person may be an engineera writera musicianand so onand inherit properties from all such sets with multiple inheritanceobjects obtain the union of the behavior in all their superclasses as we'll see aheadmultiple inheritance also allows classes to function as general packages of mixable attributes though useful patternmultiple inheritance' chief downside is that it can pose conflict when the same method (or other attributename is defined in more than one superclass when this occursthe conflict is resolved either automatically by the inheritance search orderor manually in your codedefaultby defaultinheritance chooses the first occurrence of an attribute it finds when an attribute is referenced normally--by self method()for example in this modepython chooses the lowest and leftmost in classic classesand in nondiamond patterns in all classesnew-style classes may choose an option to the right before one above in diamonds explicitin some class modelsyou may sometimes need to select an attribute explicitly by referencing it through its class name--with superclass method(self)for instance your code breaks the conflict and overrides the search' default--to select an option to the right of or above the inheritance search' default this is an issue only when the same name appears in multiple superclassesand you do not wish to use the first one inherited because this isn' as common an issue in typical python code as it may soundwe'll defer details on this topic until we study new-style classes and their mro and super tools in the next and revisit this as "gotchaat the end of that firstthoughthe next section demonstrates practical use case for multiple inheritance-based tools coding mix-in display classes perhaps the most common way multiple inheritance is used is to "mix ingeneralpurpose methods from superclasses such superclasses are usually called mix-in classes --they provide methods you add to application classes by inheritance in sensemixin classes are similar to modulesthey provide packages of methods for use in their client subclasses unlike simple functions in modulesthoughmethods in mix-in multiple inheritance"mix-inclasses