Курс 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"
- Создание GUI на Tkinter
- Отправка HTTP-запросов с User-Agent
- Перехват исключений в Python
- Транспонирование 2D-массива с помощью zip
- Метод join() для объединения элементов строки
- *args и **kwargs в Python
- Сравнение объектов в Python
- Ускорение кода с помощью векторизации
- Преобразование документов в PDF с помощью Spire.Office
- Создание словаря с значением по умолчанию
- Метод get() для словарей
- Метод setdefault() в Python
- Построение графиков в терминале с bashplotlib
- Отправка POST-запроса в REST API
- Вывод сложных структур данных с помощью pprint
- Определение относительного пути
- Выход из профиля в Django
- Функция zip() — объединение последовательностей
- Проектирование Singleton с метаклассом
- Изменение списка срезами
- Модуль Antigravity в Python 3
- Mad Libs Generator
- Метод ipow для возведения в степень
- Получение ID текущего процесса
- Оператор распаковки в Python
- Определение объема памяти объекта
- Виртуальное окружение Python
- Реверс строки и списка в Python.
- Комментарии в Python.
- Использование подчеркивания в REPL
- Объединение словарей в Python
- Открытие и редактирование скриптов Python
- Основные методы NumPy
- Декораторы в Python
- Подсчет частоты элементов с Counter
- Добавление элемента к кортежу
- Форматирование строк в Python
- Списки в Python
- Получение атрибутов и методов класса
- Деление в Python
- Объединение списков в строку
- Проверка строки на палиндром
- Форматирование вывода с F-строками
- Аннотации типов в Python
- Каналы Senior: Python, Java, Frontend, SQL, C++
- Установка пакетов с помощью pip
- Установка Home Assistant
- Основы работы с базами данных в Python















