Курс 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"

  1. Объединение итераторов
  2. Работа со словарями
  3. Реверс строки в Python
  4. Оценка точности модели
  5. Работа со словарями в Python
  6. Использование функции product
  7. Поиск наиболее частого элемента списке
  8. Progress с библиотекой tqdm
  9. Поиск подстроки в строке
  10. Создание спинбокса в tkinter
  11. Объединение словарей в Python
  12. Метод pop() списка
  13. Обход словаря в Python
  14. Получение срезов итераторов
  15. Работа с deque из collections
  16. Разрешение имен в Python
  17. Работа с географическими данными.
  18. Управление сессиями в Python
  19. Оператор «not» в Python
  20. Применение функции к списку
  21. Множественные конструкторы в Python
  22. Создание и обучение модели с Keras
  23. Удаление символа из строки
  24. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  25. Генераторы в Python
  26. Разность множеств
  27. Добавление элемента в список.
  28. Переопределение метода divmod
  29. Структурирование данных с Pydantic
  30. Работа с итераторами через срезы
  31. Ускорение кода с помощью векторизации
  32. Преобразование текста в нижний регистр
  33. Получение обратного списка чисел
  34. Комментарии в Python
  35. Регулярные выражения в Python
  36. Конвертация коллекций в Python.
  37. Работа с модулем random
  38. Удаление элементов по срезу
  39. Отправка HTTP-запросов с User-Agent
  40. Сравнение строк в Python
  41. Использование двоеточия в Python
  42. Обход элементов в Python

Marketello читают маркетологи из крутых компаний