Как реализован генератор в Python
Python
Middle
Без компании
Как реализован генератор в Python
Ответы
Генератор в Python — это функция, которая использует ключевое слово `yield` вместо `return`. При вызове она возвращает итератор, сохраняя состояние между вызовами.
Пример:
```
def count_up_to(max):
n = 1
while n <= max:
yield n
n += 1
counter = count_up_to(5) # создаёт генератор
for num in counter:
print(num) # 1, 2, 3, 4, 5
```
Особенности:
- Ленивые вычисления — значения генерируются по требованию.
- Потребляют мало памяти, так как не хранят всю последовательность.
- После завершения работы (`StopIteration`) повторно не используются.
Можно создавать генераторные выражения:
```
gen = (x**2 for x in range(5)) # аналогично списковому, но с круглыми скобками
```