ходу?
                  
                  
                  Просто я могу описать один и тот же итератор отдельным классом или генератором, никаких отличий я не увидел.
                  
                  
                  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, когда у тебя все значения уже есть, надо просто по ним пройтись
ты создал фактически фабрику итераторов и итератор в одном классе
Обсуждают сегодня