Какие есть способы написать генератор

Python Middle Т-Банк
Какие есть способы написать генератор
Ответы
В Python есть несколько способов создания генераторов: - **Функция с yield** - самый распространённый способ: ``` def count_up_to(n): i = 1 while i <= n: yield i i += 1 ``` - **Генераторное выражение** - аналогично list comprehension, но в круглых скобках: ``` squares = (x*x for x in range(10)) ``` - **Класс с **iter** и **next**** - можно создать собственный итератор: ``` class Count: def __init__(self, limit): self.limit = limit self.current = 0 def __iter__(self): return self def __next__(self): if self.current < self.limit: self.current += 1 return self.current raise StopIteration ``` Генераторы ленивы - вычисляют элементы по требованию и экономят память. Они особенно полезны при работе с большими или бесконечными последовательностями.