<instance of subaddress _listtree__visited={data =spam data =eggs data = <class subaddress __doc__ __init__ __module__ __qualname__ spamsub spam at <class superaddress __dict__ __doc__ __init__ __module__ __qualname__ __weakref__ hamsuper ham at <class objectaddress __class__ __delattr__ __dir__ __doc__ __eq__ more omitted total __repr__ __setattr__ __sizeof__ __str__ __subclasshook__ <class listtreeaddress _listtree__attrnames_listtree__listclass__dict__ __doc__ __module__ __qualname__ __str__ __weakref__ this version avoids listing the same class object twice by keeping table of classes visited so far (this is why an object' id is included--to serve as key for previously designing with classes