Курс 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"
- Глубокое копирование объектов
- Декоратор Ajax required
- Принципы Zen Python
- Преобразование регистра строк
- Преобразование списка в словарь через генератор
- Цикл while в Python
- Python-dateutil — работа с датами
- Списковое включение в Python
- Работа с дробями в Python
- Доступ к локальным переменным
- Блок else в обработке исключений
- Создание графики с черепахой
- Метод join() для объединения элементов строки
- Объединение словарей в Python
- Объединение словарей в Python
- Частичное применение функций в Python
- Официальный канал Python в Telegram
- Обмен значений переменных в Python
- Python Метод sleep() времени
- Работа с контекстными менеджерами
- Создание .exe файла с pyinstaller
- Генерация фальшивых данных с Faker
- Сложные типы данных в Python
- Преобразование документов в PDF с помощью Spire.Office
- Метод index() в Python
- Сортировка слиянием
- Функции в Python: создание и вызов
- Оператор walrus в Python
- Метод округления чисел
- Область видимости переменных
- Создание коллекций из генератора
- Создание GUI с Tkinter: Entry
- Возврат нескольких значений
- Фильтрация списка чисел
- Создание новых списков в Python
- Измерение времени выполнения кода с помощью time
- Метод splitlines() для разделения строк
- Удаление ссылок в Python
- Работа со словарями с defaultdict из collections
- Декораторы в Python
- Списковое включение в Python
- Потоковый ввод в Python
- Установка и использование библиотеки google
- Установка User-Agent в Python
- Работа с f-строками 2.0
- Работа с пользовательским вводом
- Стать Python-разработчиком
- Протокол управления контекстом















