У меня есть следующий код итератора. Поскольку я создал отдельный класс, предназначенный для итераций по списку, если я помещу два последовательных оператора для операторов, которые я использовал для итерации по своему объекту, мне не нужно будет сбрасывать индекс вручную. Но при глобальном запуске он только один раз отображает элементы моего списка, а после нескольких итераций он перестает отображать что-либо, поэтому я думаю, что где-то сброс индекса происходит неправильно. Пожалуйста, используйте простой код и простые объяснения, потому что я новичок.
my_list = [1,2,3]
class Iterator:
def __init__(self,seq):
self.seq = seq
def __next__(self):
if len(self.seq) > 0:
return self.seq.pop(0)
raise StopIteration
class Iterating:
def __init__(self):
pass
def __iter__(self):
return Iterator(my_list)
i_1 =Iterating()
for element in i_1:
print(element)
print()
for element in i_1:
print(element)
# why does this not work?