Что такое генератор?
Этот вопрос проверяет понимание механизма генераторов в Python, которые используются для ленивого создания последовательностей данных.
Короткий ответ
- Генератор — это функция, которая возвращает значения по одному с помощью ключевого слова
yield. Он позволяет экономить память, так как элементы создаются "на лету" по запросу. Генераторы можно использовать для работы с большими данными, где нет необходимости сразу загружать всё в память.
Длинный ответ
Генераторы — это удобный способ работы с итерациями. Вместо того чтобы возвращать все элементы сразу, как это делает обычная функция, генератор возвращает их по одному при каждом вызове. Ключевое слово yield в функции делает её генератором. Генераторы запоминают своё состояние между вызовами, что делает их полезными для обработки больших объёмов данных.
Пример генератора:
def my_generator():
yield 1
yield 2
yield 3
gen = my_generator()
for value in gen:
print(value)
# Вывод:
# 1
# 2
# 3
Генераторы особенно полезны для работы с большими файлами, потоками данных или при выполнении долгих вычислений.