Курс 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"
- Оптимизация памяти с __slots__
- Магические методы в Python
- Работа с файловой системой в Python
- Форматирование строк в Python
- Метод eq для сравнения объектов
- Работа с IP-адресами в Python
- Преобразование данных в Python
- Объединение списков в Python
- Декораторы в Python
- Оптимизация памяти с slots
- Управление сессиями в Python
- Базовые объекты Python
- Использование super() в Python
- Кортежи в Python: особенности и преимущества
- Python Enumerate
- Класс Counter() для подсчета элементов
- Преобразование списка в словарь через генератор
- Сортировка данных в Python
- Поиск элементов BeautifulSoup
- Нахождение пересечения множеств
- Работа с комплексными числами
- Введение в PyTorch
- Асинхронное выполнение задач в процессах
- Переменные в Python: сокращение гласных
- Создание Radio кнопок в tkinter
- Основы работы с базами данных в Python
- Нахождение хеша для бесконечности и NaN в Python
- Объединение словарей в Python
- Удаление файлов с shutil.os.remove()
- Проверка на истинность объектов в Python
- Логирование с Loguru
- Solidity для DeFi Ethereum
- Выражения-генераторы в Python
- Создание списков в Python
- Работа с модулем bisect
- Генерация QR-кодов с Python
- Генерация строк с .join()
- Создание namedtuple из словаря
- Инверсия списков и строк в Python
- Генераторные функции в Python
- Функция product() из itertools
- Замена подстроки
- Метод __complex__ в Python
- Заказ карты Тинькофф Black















