Курс 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 3.12
- Работа со строками в Python.
- Функция __init__ в Python
- Логические значения в Python
- Проверка индексов коллекции
- Модуль pprint: улучшение вывода данных
- Работа с очередями в Python
- Реализация операции -= для пользовательского класса
- Оператор walrus в Python
- Работа с zip-архивами в Python
- Генераторы в Python
- Применение функции к списку
- Добавление элементов в список: append() vs extend()
- Возврат нескольких значений
- Глобальные переменные в Python
- Избегайте двойного подчеркивания
- UserString в Python
- Цикл for в Python
- Получение пути к текущему скрипту с помощью os
- Методы работы со строками в Python
- 9 уловок для чистого кода
- Функция enumerate() — Python
- Округление чисел с помощью round
- Метод ne для сравнения объектов
- Python enumerate() использование
- Путь к интерпретатору Python
- Оператор умножения для вектора
- Работа со словарями
- inspect в Python: анализ кода
- Работа с каталогами в Python
- Удаление специальных символов
- Подписка на @SelectelNews
- Тест скорости набора текста на Python
- Искажение имен в Python
- Умножение строк и списков
- Склеивание строк через метод join()
- Генераторы в Python
- Функции all и any в Python
- Решатель судоку на Python с pygame
- Распаковка элементов последовательности
- Визуализация пропусков данных
- Вычисление натурального логарифма в NumPy
- Удаление дубликатов с помощью множеств
- Бинарный поиск
- Обработка исключений
- Numpy: объединение массивов















