class modList(list):

    def __getitem__(self, i):
        if len(self) == 0:
            raise IndexError
i = i % len(self)
return super(modList, self).__getitem__(i)
Как list[n] может указывать на list[0]? Получение предметов не по порядку