Курс 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. Реверс строки и списка в Python.
  3. Создание функций высшего порядка
  4. Поиск индекса элемента
  5. Виртуальные среды в Python
  6. Определение индекса элемента списка
  7. Работа с файлами в Python
  8. Итерации в Python
  9. Измерение времени выполнения кода
  10. Управление контекстом выполнения
  11. Цикл for в Python
  12. Метод setitem в Python
  13. Генераторы списков в Python
  14. Оператор * в Python
  15. Отображение HTML кода в Python
  16. Оператор Walrus в Python 3.8
  17. Управление асинхронными задачами на Python.
  18. Печать в одной строке
  19. Форматирование строк с % в Python
  20. Docstring в Python
  21. Функции all и any в Python
  22. Отладка в командной строке
  23. Многострочные комментарии в Python
  24. Сортировка с помощью key
  25. Создание списков в Python
  26. Аннотации типов в Python
  27. Удаление файлов и папок в Python
  28. Замена атрибута в именованном кортеже
  29. Поиск с помощью регулярных выражений
  30. Операция += для списков
  31. Удаление дубликатов в pandas
  32. Создание словарей с defaultdict
  33. Работа с утверждениями в Python
  34. Конструктор в Python
  35. Равенство и идентичность в Python
  36. Методы split() и join() — Python строк.
  37. Проверка дублей в списке.
  38. Создание новых списков
  39. Изучение объектов с помощью dir()
  40. Руководство по библиотеке pydantic
  41. Метод clear для коллекций
  42. split() — разделение строки
  43. Роль ключевого слова self
  44. Форматирование вывода списков
  45. Изменение регистра данных
  46. Генератор данных в Keras
  47. Необязательные аргументы в Python

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