Встречается на 2% собеседований по Python
Как реализован генератор в Python
Генератор в Python — это функция, которая использует ключевое слово yield вместо return. При вызове она возвращает итератор, сохраняя состояние между вызовами.
Пример:
python
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
text
Особенности:
1. Ленивые вычисления — значения генерируются по требованию.
2. Потребляют мало памяти, так как не хранят всю последовательность.
3. После завершения работы (`StopIteration`) повторно не используются.
Можно создавать генераторные выражения:
```python
gen = (x**2 for x in range(5)) # аналогично списковому, но с круглыми скобками
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы