python重写父类方法,python重写,class MyList


class MyList:    def __init__(self, start):        #self.wrapped = start[:]                        self.wrapped = []                               for x in start: self.wrapped.append(x)    def __add__(self, other):        return MyList(self.wrapped + other)    def __mul__(self, time):        return MyList(self.wrapped * time)    def __getitem__(self, offset):        return self.wrapped[offset]    def __len__(self):        return len(self.wrapped)    def __getslice__(self, low, high):        return MyList(self.wrapped[low:high])    def append(self, node):        self.wrapped.append(node)    def __getattr__(self, name):                        return getattr(self.wrapped, name)    def __repr__(self):        return 'self.wrapped'class MyListSub(MyList):    calls = 0                                      def __init__(self, start):        self.adds = 0                                  MyList.__init__(self, start)    def __add__(self, other):        MyListSub.calls = MyListSub.calls + 1          self.adds = self.adds + 1                      return MyList.__add__(self, other)    def stats(self):        return self.calls, self.adds           if __name__ == '__main__':    x = MyListSub('A')    y = MyListSub('B')    print x[0]    print x[1:]    print x + ['C']    print x + ['D']    print y + ['E']    print x.stats()

评论关闭