Курс 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.
- Создание функций высшего порядка
- Поиск индекса элемента
- Виртуальные среды в Python
- Определение индекса элемента списка
- Работа с файлами в Python
- Итерации в Python
- Измерение времени выполнения кода
- Управление контекстом выполнения
- Цикл for в Python
- Метод setitem в Python
- Генераторы списков в Python
- Оператор * в Python
- Отображение HTML кода в Python
- Оператор Walrus в Python 3.8
- Управление асинхронными задачами на Python.
- Печать в одной строке
- Форматирование строк с % в Python
- Docstring в Python
- Функции all и any в Python
- Отладка в командной строке
- Многострочные комментарии в Python
- Сортировка с помощью key
- Создание списков в Python
- Аннотации типов в Python
- Удаление файлов и папок в Python
- Замена атрибута в именованном кортеже
- Поиск с помощью регулярных выражений
- Операция += для списков
- Удаление дубликатов в pandas
- Создание словарей с defaultdict
- Работа с утверждениями в Python
- Конструктор в Python
- Равенство и идентичность в Python
- Методы split() и join() — Python строк.
- Проверка дублей в списке.
- Создание новых списков
- Изучение объектов с помощью dir()
- Руководство по библиотеке pydantic
- Метод clear для коллекций
- split() — разделение строки
- Роль ключевого слова self
- Форматирование вывода списков
- Изменение регистра данных
- Генератор данных в Keras
- Необязательные аргументы в Python















