def __getitem__(self, key):
    if isinstance(key, slice):
        return [self.list[i] for i in range(key.start, key.stop, key.step)]
How to override the slice functionality of list in its derived class