this means all classes get defaults in __bases__ (, (__repr__ this model also makes for fewer special cases than the prior type/class distinction of classic classesand it allows us to write code that can safely assume and use an object superclass ( by assuming it as an "anchorin some super built-in roles described aheadand by passing it method calls to invoke default behaviorwe'll see examples of the latter later in the bookfor nowlet' move on to explore the last major new-style change diamond inheritance change our final new-style class model change is also one of its most visibleits slightly different inheritance search order for so-called diamond pattern multiple inheritance trees-- tree pattern in which more than one superclass leads to the same higher superclass further above (and whose name comes from the diamond shape of the tree if you sketch out-- square resting on one of its cornersthe diamond pattern is fairly advanced design conceptonly occurs in multiple inheritance treesand tends to be coded rarely in python practiceso we won' cover this topic in full depth in shortthoughthe differing search orders were introduced briefly in the prior multiple inheritance coveragefor classic classes (the default in )dflr the inheritance search path is strictly depth firstand then left to right--python climbs all the way to the tophugging the left side of the treebefore it backs up and begins to look further to the right this search order is known as dflr for the first letters in its path' directions for new-style classes (optional in and automatic in )mro the inheritance search path is more breadth-first in diamond cases--python first looks in any superclasses to the right of the one just searched before ascending to the common superclass at the top in other wordsthis search proceeds across by levels before moving up this search order is called the new-style mro for "method resolution order(and often just mro for short when used in contrast with the dflr orderdespite the namethis is used for all attributes in pythonnot just methods the new-style mro algorithm is bit more complex than just described--and we'll expand on it bit more formally later--but this is as much as many programmers need to know stillit has both important benefits for new-style class codeas well as program-breaking potential for existing classic class code for examplethe new-style mro allows lower superclasses to overload attributes of higher superclassesregardless of the sort of multiple inheritance trees they are mixed new-style class changes