Курс Python → Функции-генераторы в Python
Функции-генераторы в Python представляют собой специальный тип функций, которые могут возвращать результаты несколько раз в процессе выполнения. Они отличаются от обычных функций тем, что в них присутствует оператор yield, который позволяет сохранить текущее состояние выполнения функции и вернуть значение, не завершая ее полностью.
Оператор yield позволяет функции «замораживаться» на определенном этапе выполнения и возвращать значение, после чего продолжать выполнение с того же места. Это позволяет экономить ресурсы памяти и времени, так как функция не хранит все результаты в памяти сразу, а возвращает их по мере необходимости.
Для создания функции-генератора необходимо использовать ключевое слово yield внутри тела функции. Когда функция вызывается, она возвращает объект-генератор, который можно использовать для получения значений, возвращаемых оператором yield. Когда все значения были извлечены, генератор исчерпывается и выдает исключение StopIteration.
def example_generator():
yield 1
yield 2
yield 3
gen = example_generator()
print(next(gen)) # Вывод: 1
print(next(gen)) # Вывод: 2
print(next(gen)) # Вывод: 3
В данном примере создается функция-генератор example_generator, которая последовательно возвращает числа 1, 2 и 3 при каждом вызове оператора yield. После каждого вызова функции next(gen) получаем следующее значение из генератора, пока не исчерпаем все значения.
Другие уроки курса "Python"
- Объединение списков в строку
- Метод rlshift для битового сдвига
- Работа с YAML в Python
- Цикл for в Python
- Расчет времени выполнения кода
- Создание и обучение модели с Keras
- Взаимодействие с внешними процессами в Python
- Объединение словарей в Python 3.5+
- Установка виртуального окружения Python
- Встраивание HTML в Jupyter Notebook
- Сортировка HTML по CSS-селектору
- Операторы увеличения и уменьшения в Python
- Упрощение работы с JSON-данными в Python
- Метод join() для объединения элементов строки
- Получение комбинаций в Python
- Избегайте ошибку FileNotFoundError
- Оператор «is not» в Python
- Переопределение метода xor в Python
- Работа с argparse
- Форматирование объектов с модулем pprint
- Множественные конструкторы в Python
- Получение частей дроби
- Возврат нескольких значений из функции
- Ограничение ресурсов в Python
- Удаление ключей из словаря
- Разность множеств
- lru_cache оптимизация функций
- Модуль inspect
- Метод get() для словарей
- Установка Home Assistant
- Хешируемые ключи в Python
- Очистка строки в Python
- Python Метод Union Множеств
- Ускорение кода с помощью векторизации
- Метод lt для сортировки объектов
- Асинхронное выполнение задач в процессах
- Работа с необработанными строками
- Генераторы данных
- Генераторы в Python
- Метод join() для объединения элементов
- Генерация тестовых данных с factory_boy
- Обработка ошибок в JSON данных
- Конкатенация строк в Python
- Отрицательные индексы списков в Python
- Работа с файлами и директориями в Python.
- Отправка поздравлений по дню рождения
- Декораторы в Python















