'__module__''attr ''attr 'objs {['attr ']['attr ']['__doc__''__module__']new-style classes in and py=> inh (attrs {'__dict__''__doc__''__module__''__weakref__''attr ''attr 'objs {['__dict__''__weakref__']['attr ']['attr ']['__doc__''__module__']as larger application of these toolsthe following is our inheritance simulator at work in on the preceding testmixin py file' test classes ( 've deleted some builtin names here for spaceas usualrun live for the whole listnotice how __x pseudoprivate names are mapped to their defining classesand how listinstance appears in the mro before objectwhich has __str__ that would otherwise be chosen first--as you'll recallmixing this method in was the whole point of the lister classesc:\codepy - from mapattrs import tracedflrinheritancemapattrs from testmixin import sub sub(sub inherits from super and listinstance roots trace(dflr( __class__) search orderimplied object before lister[trace(inheritance( ) ( newstylesearch orderlister first (new-style class changes