object root)--to the topand then to the right ( dflrdepth first and left to rightthe model used for all classic classes in )class apass class ( )pass nondiamondsorder same as classic class cpass depth firstthen left to right class (bc)pass __mro__ (the mro of the following treefor exampleis the same as the earlier diamondper dflrclass apass class bpass another nondiamonddflr class ( )pass class (bc)pass __mro__ (notice how the implied object superclass always shows up at the end of the mroas we've seenit' added automatically above root (topmostclasses in new-style class trees in (and optionally in ) __bases__ superclass linksobject at two roots (, __bases__ (, __bases__ (, __bases__ (technicallythe implied object superclass always creates diamond in multiple inheritance even if your classes do not--your classes are searched as beforebut the newstyle mro ensures that object is visited lastso your classes can override its defaultsclass xpass class ypass class ( )pass nondiamonddepth first then left to right class ( )pass though implied "objectalways forms diamond class (ab)pass mro([ __bases__y __bases__ ((,)(,) __bases__b __bases__ ((,)(,)new-style class changes