Курс 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"
- Типы возвращаемых значений в Python
- Новшества Flask 2.0
- Функция reduce() из модуля functools
- Генераторы списков
- Метод rlshift для битового сдвига
- Управление User-Agent в Python
- Логирование с Logzero
- Поиск индекса элемента в списке
- Метод rmatmul для обратного матричного умножения
- Переопределение метода __or__()
- Транспонирование 2D-массива с помощью zip
- Копирование и вставка текста в Python
- Создание веб-приложения с Flask
- Объединение словарей в Python
- Избегайте пустого списка
- Сравнение объектов в Python
- Декораторы в Python
- Создание матрицы в Python
- Создание словаря в Python
- Извлечение статей с newspaper3k
- Оператор @ для умножения матриц
- Работа с эмодзи в Python
- Блок else в циклах.
- Работа с Telegram API на Python
- Проверка элементов списка условием
- Оператор Walrus: правильное использование
- Разделение строк в Python
- Работа с файлами в Python
- Библиотека wikipedia для Python
- Измерение времени выполнения кода
- Объединение списков с использованием itertools.chain
- Работа с изменяемыми коллекциями
- Метод split() для разделения строк
- Подсчет элементов с помощью Counter из collections
- Методы в Python
- Транспонирование 2D-массива с помощью zip
- Обновление и получение данных в SQLite
- Пустой оператор pass в Python
- Создание новых списков через list comprehensions
- Работа с очередями в Python
- Получение списка файлов в директории с использованием os
- Сортировка элементов в Python
- Работа с буфером обмена на Python
- PATCH-запрос с библиотекой requests
- Сравнение объектов в Python















