Курс 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"
- Получение атрибутов и методов класса
- Создание именованных кортежей в Python
- Работа с изображениями PIL
- Оптимизация памяти в Python
- Python Аргументы по умолчанию
- Progress с библиотекой tqdm
- Форматирование чисел в Python
- Хранение данных
- Декоратор total_ordering для класса Point
- Выключение компьютера с помощью Python
- Расчет времени выполнения
- Вычисление натурального логарифма в NumPy
- Операции с числами в Python
- Декоратор total_ordering для сравнения объектов
- Enum в Python
- Python reversed() vs срез[::-1]
- Метод setdefault() в Python
- Проверка памяти объекта
- Управление ресурсами в Python
- Создание и обучение модели с Keras
- Работа с Telegram API на Python
- Работа с изображениями Pillow
- Проверка однородности элементов списка
- Получение списка кортежей из словаря
- Функции в Python
- Работа с комбинациями в Python.
- Модуль Operator в Python
- TypedDict для kwargs в Python 3.12
- Замер времени выполнения кода
- Ошибка NotImplemented в Python
- Удаление знаков препинания в Python
- Выражения-генераторы в Python
- Создание словаря в Python
- Метод rsub для пользовательских чисел
- Проверка дубликатов в Python
- Преобразование генераторов в циклы
- Обработка данных в Python
- Модуль pprint: улучшение вывода данных
- Подсчет часто встречающихся элементов
- Итерация по коллекции в Python
- Удаление первого элемента списка
- Создание генераторов в Python
- Реверс строки в Python
- Удаление дубликатов из списка
- Управление сессиями в Python
- Функция reduce() из модуля functools
- Применение функции к каждому элементу списка
- Оператор объединения словарей
- Автоматизация действий с Pyautogui















