ходу?
Просто я могу описать один и тот же итератор отдельным классом или генератором, никаких отличий я не увидел.
class MyRange:
def __init__(self, start, end):
self.start = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.start >= self.end
raise StopIteration
current = self.start
self.start += 1
return current
iter_ = MyRange()
Это если я создаю итератор "вручную".
А вот это - если создаю его через генератор.
def myRange(start, end):
current = start
while current < end:
yield current
current += 1
iter_ = myRange()
обычный итератор выдает данные из списка например
а вот возьми вместо MyRange MyLinkedList, когда у тебя все значения уже есть, надо просто по ним пройтись
ты создал фактически фабрику итераторов и итератор в одном классе
Обсуждают сегодня