Как реализовать генератор без использования yield

Python Middle Без компании
Как реализовать генератор без использования yield
Ответы
Можно создать класс, реализующий протокол итератора с методами `__iter__` и `__next__`. Вот пример генератора чисел Фибоначчи: ``` class Fib: def __init__(self, limit): self.limit = limit self.a, self.b = 0, 1 self.count = 0 def __iter__(self): return self def __next__(self): if self.count >= self.limit: raise StopIteration value = self.a self.a, self.b = self.b, self.a + self.b self.count += 1 return value # Использование: for num in Fib(10): print(num) ``` Этот класс ведет себя как генератор, сохраняя состояние между вызовами. При каждом вызове `__next__` он возвращает следующее значение последовательности.