Курс 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. Dict Comprehension в Python
  2. Копирование списков в Python
  3. Равенство и идентичность в Python
  4. Работа с Enum в Python3.
  5. Работа с модулем glob в Python
  6. Библиотека sh: использование команд bash в Python
  7. Отладка производительности Python
  8. Переопределение оператора % для объектов
  9. JSON в Python: модуль, dump, dumps, load
  10. Функция product() из itertools
  11. Метод __iand__ для пользовательских классов
  12. Срезы в Python
  13. Декораторы для регистрации функций
  14. Создание GUI с Tkinter: Entry
  15. Сериализация данных в JSON с помощью json.dumps
  16. Использование эмодзи в Python
  17. Работа с изменяемыми списками
  18. Обязательные аргументы в Python
  19. Скрытие вывода данных
  20. Принципы Zen of Python
  21. Участие в LP стейкинге Waves
  22. Навыки Python: строки, типы данных
  23. Принципы программирования
  24. Проверка дублей в списке.
  25. Операторы сравнения в Python
  26. Списковые включения в Python
  27. Измерение времени выполнения с помощью time
  28. Основные операции с библиотекой Numpy
  29. Defaultdict в Python
  30. Вывод символов строки в Python
  31. Создание словаря с значением по умолчанию
  32. Пространство имен в Python
  33. Глобальные переменные в Python
  34. Сортировка элементов в Python
  35. Асинхронный код в Python
  36. Работа с байтовыми строками в Python
  37. Модуль math: основные функции
  38. Объединение словарей в Python
  39. Python: Splat-оператор и splatty-splat
  40. Проекты на Python
  41. Чтение и запись TOML-конфигов
  42. Метод setitem в Python
  43. Измерение времени выполнения кода
  44. Метод splitlines() для разделения строк
  45. Подсчет элементов с помощью Counter из collections
  46. Сохранение и загрузка модели в PyTorch
  47. Выход из профиля в Django

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