import collections class Items(collections.MutableSequence): def __init__(self, initial=None): self._items = list(initial) if initial is None else [] # Required sequence methods def __getitem__(self, index): print('Getting:', index) return self._items[index] def __setitem__(self, index, value): print('Setting:', index, value) self._items[index] = value def __delitem__(self, index): print('Deleting:', index) del self._items[index] def insert(self, index, value): print('Inserting:', index, value) self._items.insert(index, value) def __len__(self): print('Len') return len(self._items) if __name__ == '__main__': a = Items([1, 2, 3]) print(len(a)) a.append(4) a.append(2) print(a.count(2)) a.remove(3)