Курс 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
- Использование функции product
- Поиск наиболее частого элемента списке
- Progress с библиотекой tqdm
- Поиск подстроки в строке
- Создание спинбокса в tkinter
- Объединение словарей в Python
- Метод pop() списка
- Обход словаря в Python
- Получение срезов итераторов
- Работа с deque из collections
- Разрешение имен в Python
- Работа с географическими данными.
- Управление сессиями в Python
- Оператор «not» в Python
- Применение функции к списку
- Множественные конструкторы в Python
- Создание и обучение модели с Keras
- Удаление символа из строки
- Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
- Генераторы в Python
- Разность множеств
- Добавление элемента в список.
- Переопределение метода divmod
- Структурирование данных с Pydantic
- Работа с итераторами через срезы
- Ускорение кода с помощью векторизации
- Преобразование текста в нижний регистр
- Получение обратного списка чисел
- Комментарии в Python
- Регулярные выражения в Python
- Конвертация коллекций в Python.
- Работа с модулем random
- Удаление элементов по срезу
- Отправка HTTP-запросов с User-Agent
- Сравнение строк в Python
- Использование двоеточия в Python
- Обход элементов в Python















