of compilerfor instancedoes not generally require its users to be compiler developers by contrastpython' super assumes full mastery and deployment of the arguably obscure and artificial mro algorithm the new-style inheritance algorithm presented in this similarly assumes descriptorsmetaclassesand the mro as its prerequisites--all advanced tools in their own right even implicit "hookslike descriptors remain implicit only until their first failure or maintenance cycle such magic exposed escalates tool' prerequisites and downgrades its usability in open source systemsonly time and downloads can determine where such thresholds may lie finding the proper balance of power and complexity depends as much on shifting opinion as on technology subjective factors asidethoughnew magic that imposes itself on users inevitably skews system' learning curve higher-- topic we'll return to in the next final words the metaclass model to understand metaclassesyou first need to understand bit more about python' type model and what happens at the end of class statement as we'll see herethe two are intimately related classes are instances of type so far in this bookwe've done most of our work by making instances of built-in types like lists and stringsas well as instances of classes we code ourselves as we've seeninstances of classes have some state information attributes of their ownbut they also inherit behavioral attributes from the classes from which they are made the same holds true for built-in typeslist instancesfor examplehave values of their ownbut they inherit methods from the list type while we can get lot done with such instance objectspython' type model turns out to be bit richer than 've formally described reallythere' hole in the model we've seen thus farif instances are created from classeswhat is it that creates our classesit turns out that classes are instances of somethingtooin python xuser-defined class objects are instances of the object named typewhich is itself class in python xnew-style classes inherit from objectwhich is subclass of typeclassic classes are instances of type and are not created from class we explored the notion of types in and the relationship of classes to types in but let' review the basics here so we can see how they apply to metaclasses recall that the type built-in returns the type of any object (which is itself an objectwhen called with single argument for built-in types like liststhe type of the instance metaclasses