Курс 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"
- Генерация случайных данных в NumPy
- Работа с Event() в threading
- Обход дочерних элементов BeautifulSoup
- Просмотр внешнего файла в Python
- Подсчет элементов в Python
- Управление памятью в numpy.
- Работа со словарями в Python
- Комментарии в Python
- Операции со строками в Python
- Поиск с помощью регулярных выражений
- Сравнение def и lambda-функций
- Округление чисел с помощью round
- Извлечение чисел из текста
- Замена атрибута в именованном кортеже
- Модуль sys: основы
- Упрощение условных выражений с тернарным оператором
- Разделение строки с помощью re.split()
- Python reversed() функция
- Функции min(), max(), sum()
- Удаление элементов из списка в Python
- Переопределение метода sub
- Загрузка постов Instagram
- Установка random seed в Python
- Многострочные комментарии в Python
- Работа с комплексными числами в Python
- Логические значения в Python
- Создание директории в Python
- Шаблоны и наследование в Flask
- Проверка наличия элемента в списке
- Конкатенация строк в Python
- Аргумент по умолчанию
- Перезагрузка оператора в Python
- Функция zip() в Python
- Метод getitem для доступа к элементам последовательности
- Поиск самого частого элемента
- Оператор «моржа» (Walrus Operator)
- Объединение словарей в Python
- Python enumerate() использование
- Подсказки типов в Python
- Оператор is в Python
- Функциональное программирование.
- Комментарии в Python.
- Декораторы в Python
- Обработка исключений в Python
- Проверка запуска скрипта или импорта модуля















