Курс 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
- Переопределение метода len
- Метод rmatmul для обратного матричного умножения
- Python Метод Union Множеств
- Методы Python для работы с данными
- Итераторы с потерямиZIP
- Python Calendar Usage
- Переворот строки с помощью срезов
- Векторизация в Python с NumPy.
- Генерация чисел с range()
- Распаковка значений в Python
- Установка и использование библиотеки google
- Установка Python3.7 и PIP
- Numpy: использование Ellipsis
- Оператор (*) в Python
- Замыкания в Python
- Метод append() для списка
- Отображение HTML кода в Python
- Создание функций высшего порядка
- Объединение словарей в Python
- Область видимости переменных
- Метод join() для объединения строк
- Построение графиков в терминале с bashplotlib
- Проверка индексов коллекции
- Python-dateutil — работа с датами
- Извлечение аудио из видео
- Передача словаря через **kwargs
- Работа с модулем glob в Python
- Пересечение списков с использованием множеств
- Функция product() в Python
- Создание и обучение модели с Keras
- Работа с JSON данными в Python
- Python: динамическая типизация и проверка типов
- Названия переменных
- Генерация строк с .join()
- Метод __int__ в Python
- Разрешение имен в Python
- Python 3.12: Псевдонимы типов
- Создание и использование ChainMap
- Списковый компрехеншен.
- Метод is_absolute() для PurePath
- Метод get для словаря
- Явный импорт в Python
- Создание пустых функций и классов в Python
- Управление User-Agent в Python















