On Mon, 04 Apr 2005 21:14:21 +1200 John Fouhy <[EMAIL PROTECTED]> wrote:
> Are you sure you've giving us all the code? No, I was trying to keep it simple. Anyway, here it is, class MyList: def __init__(self, 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 __setitem__(self, index, value): self.wrapped[index] = value print self.wrapped def __getattr__(self, name): return getattr(self.wrapped, name) def __repr__(self): return `self.wrapped` ===== from mylist import MyList 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 __mul__(self, time): MyListSub.calls = MyListSub.calls + 1 self.adds = self.adds + 1 return MyList.__mul__(self, time) def __getitem__(self, offset): MyListSub.calls = MyListSub.calls + 1 self.adds = self.adds + 1 return MyList.__getitem__(self, offset) def __len__(self): MyListSub.calls = MyListSub.calls + 1 self.adds = self.adds + 1 return MyList.__len__(self) def __getslice__(self, low, high): MyListSub.calls = MyListSub.calls + 1 self.adds = self.adds + 1 return MyList.__getslice__(self, low, high) def __setitem__(self, index, value): MyListSub.calls = MyListSub.calls + 1 self.adds = self.adds + 1 return MyList.__setitem__(self, index, value) def __getattr__(self, name): MyListSub.calls = MyListSub.calls + 1 self.adds = self.adds + 1 return MyList.__getattr__(self, name) def __sub__(self, index): MyListSub.calls = MyListSub.calls + 1 self.adds = self.adds + 1 return MyList.__sub__(self, index) def __and__(self, value): MyListSub.calls = MyListSub.calls + 1 self.adds = self.adds + 1 MyList.__and__(self, value) def stats(self): return self.calls, self.adds _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor