关于python的一些小问题

class ListTree:
def str(self):
self.__visited = {}
return self.__listclass(self.__class__, 4)

def __listclass(self, aClass, indent):
    dots = '.' * indent
    if aClass in self.__visited:
        return '\n{0}<Class {1}:, address {2}: (see above)>\n'.format(dots,
                                                                      aClass.__name__,
                                                                      id(aClass) )
    else:
        self.__visited[aClass] = True
        genabove = (self.__listclass(c, indent + 4) for c in aClass.__bases__)
        return '\n{0}<Class {1}, address {2}:\n{3}{4}\n'.format(dots,
                                                                   aClass.__name__,
                                                                   id(aClass),
                                                                   ''.join(genabove),
                                                                   dots)

class Super (ListTree):
def init(self):
self.data1 = 1024
self.name = "I'm Super Klass"
class Sub(Super, ListTree):
def init(self):
self.data2 = 2048
self.names = "I'm Sub Class, a subclass from Super"

a = Sub()
print(a)

它的显示结果是

....<Class Sub, address 47420856:

........<Class Super, address 47420384:

............<Class ListTree, address 47419912:

................<Class object, address 1387117264:
................
............
........

........
....
但是若果我把Super继承的ListTree去掉即

class ListTree:
def str(self):
self.__visited = {}
return self.__listclass(self.__class__, 4)

def __listclass(self, aClass, indent):
    dots = '.' * indent
    if aClass in self.__visited:
        return '\n{0}<Class {1}:, address {2}: (see above)>\n'.format(dots,
                                                                      aClass.__name__,
                                                                      id(aClass) )
    else:
        self.__visited[aClass] = True
        genabove = (self.__listclass(c, indent + 4) for c in aClass.__bases__)
        return '\n{0}<Class {1}, address {2}:\n{3}{4}\n'.format(dots,
                                                                   aClass.__name__,
                                                                   id(aClass),
                                                                   ''.join(genabove),
                                                                   dots)

class Super :
def init(self):
self.data1 = 1024
self.name = "I'm Super Klass"
class Sub(Super, ListTree):
def init(self):
self.data2 = 2048
self.names = "I'm Sub Class, a subclass from Super"

a = Sub()
print(a)

它的输出结果是

....<Class Sub, address 43881912:

........<Class Super, address 43881440:

............<Class object, address 1387117264:
............
........

........<Class ListTree, address 43880968:

............
........
....
所以前一次较后一次少的那个object类去哪了?

新人第一次问问题,好紧张

不用紧张,这个期末不考。