they are just normal dictionaries can help solidify namespaces in general in we'll learn also about slotsa somewhat advanced newstyle class feature that stores attributes in instancesbut not in their namespace dictionaries it' tempting to treat these as class attributesand indeedthey appear in class namespaces where they manage the per-instance values as we'll seethoughslots may prevent __dict__ from being created in the instance entirely-- potential that generic tools must sometimes account for by using storage-neutral tools such as dir and getattr namespace linksa tree climber the prior section demonstrated the special __class__ and __bases__ instance and class attributeswithout really explaining why you might care about them in shortthese attributes allow you to inspect inheritance hierarchies within your own code for examplethey can be used to display class treeas in the following python and example#!python ""classtree pyclimb inheritance trees using namespace linksdisplaying higher superclasses with indentation for height ""def classtree(clsindent)print(indent cls __name__for supercls in cls __bases__classtree(superclsindent+ print class name here recur to all superclasses may visit super once def instancetree(inst)print('tree of %sinstclasstree(inst __class__ show instance climb to its class def selftest()class apass class ( )pass class ( )pass class ( , )pass class epass class ( , )pass instancetree( ()instancetree( ()if __name__ ='__main__'selftest(the classtree function in this script is recursive--it prints class' name using __name__then climbs up to the superclasses by calling itself this allows the function to traverse arbitrarily shaped class treesthe recursion climbs to the topand stops at class coding details