Надо было реализовать виджет, где стрелки ходят по списку вепрёд\назад, выдавая текущее значение (картинку) в спец. окошко. Убил на этот вопрос не менее 5 часов чистого времени, в итоге так и не справился. Но вот решение, подсказали
class Simpleiterator:
def __init__(self,somelist):
self.list = somelist
self.ind = 0
self.length = len(somelist)
def forward(self):
self.ind +=1
self.ind = self.ind % self.length
return self.list[self.ind]
def back(self):
self.ind -=1
self.ind = self.ind % self.length
return self.list[self.ind]
a = Simpleiterator(['q', 'w', 'e', 'r', 't'])
Моя ошибка в том, что очень переусложнил - написал 2 итератора для каждой стрелки, пытался сделать список, разбитый по текущему значению, и ещё несколько ненужных действий. В итоге было всё ок кроме главного - оба итератора не листали слаженно, т.е каждый запоминал только своё состояние.
А всё оказалось настолько просто.
Причём закольцованный проход по списку я точно делал, и 'остаток от деления на длину списка' использовал, эх...