practical contexts where this type/class merging becomes most obvious is when we do explicit type testing with python ' classic classesthe type of class instance is generic "instance,but the types of built-in objects are more specificc:\codec:\python \python class cpass classic classes in (instances are made from classes type( ) __class__ (type(cbut classes are not the same as types __class__ attributeerrorclass has no attribute '__class__type([ ])[ __class__ (type(list)list __class__ (but with new-style classes in xthe type of class instance is the class it' created fromsince classes are simply user-defined types--the type of an instance is its classand the type of user-defined class is the same as the type of built-in object type classes have __class__ attribute nowtoobecause they are instances of typec:\codec:\python \python class (object)pass new-style classes in (type of instance is class it' made from type( ) __class__ (type( ) __class__ (classes are user-defined types the same is true for all classes in python xsince all classes are automatically newstyleeven if they have no explicit superclasses in factthe distinction between builtin types and user-defined class types seems to melt away altogether in xc:\codec:\python \python class cpass (all classes are new-style in type( ) __class__ type of instance is class it' made from (type( ) __class__ (class is typeand type is class type([ ])[ __class__ (new-style class changes