Курс 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"
- Dict Comprehension в Python
- Копирование списков в Python
- Равенство и идентичность в Python
- Работа с Enum в Python3.
- Работа с модулем glob в Python
- Библиотека sh: использование команд bash в Python
- Отладка производительности Python
- Переопределение оператора % для объектов
- JSON в Python: модуль, dump, dumps, load
- Функция product() из itertools
- Метод __iand__ для пользовательских классов
- Срезы в Python
- Декораторы для регистрации функций
- Создание GUI с Tkinter: Entry
- Сериализация данных в JSON с помощью json.dumps
- Использование эмодзи в Python
- Работа с изменяемыми списками
- Обязательные аргументы в Python
- Скрытие вывода данных
- Принципы Zen of Python
- Участие в LP стейкинге Waves
- Навыки Python: строки, типы данных
- Принципы программирования
- Проверка дублей в списке.
- Операторы сравнения в Python
- Списковые включения в Python
- Измерение времени выполнения с помощью time
- Основные операции с библиотекой Numpy
- Defaultdict в Python
- Вывод символов строки в Python
- Создание словаря с значением по умолчанию
- Пространство имен в Python
- Глобальные переменные в Python
- Сортировка элементов в Python
- Асинхронный код в Python
- Работа с байтовыми строками в Python
- Модуль math: основные функции
- Объединение словарей в Python
- Python: Splat-оператор и splatty-splat
- Проекты на Python
- Чтение и запись TOML-конфигов
- Метод setitem в Python
- Измерение времени выполнения кода
- Метод splitlines() для разделения строк
- Подсчет элементов с помощью Counter из collections
- Сохранение и загрузка модели в PyTorch
- Выход из профиля в Django















