Курс 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. Типы возвращаемых значений в Python
  2. Новшества Flask 2.0
  3. Функция reduce() из модуля functools
  4. Генераторы списков
  5. Метод rlshift для битового сдвига
  6. Управление User-Agent в Python
  7. Логирование с Logzero
  8. Поиск индекса элемента в списке
  9. Метод rmatmul для обратного матричного умножения
  10. Переопределение метода __or__()
  11. Транспонирование 2D-массива с помощью zip
  12. Копирование и вставка текста в Python
  13. Создание веб-приложения с Flask
  14. Объединение словарей в Python
  15. Избегайте пустого списка
  16. Сравнение объектов в Python
  17. Декораторы в Python
  18. Создание матрицы в Python
  19. Создание словаря в Python
  20. Извлечение статей с newspaper3k
  21. Оператор @ для умножения матриц
  22. Работа с эмодзи в Python
  23. Блок else в циклах.
  24. Работа с Telegram API на Python
  25. Проверка элементов списка условием
  26. Оператор Walrus: правильное использование
  27. Разделение строк в Python
  28. Работа с файлами в Python
  29. Библиотека wikipedia для Python
  30. Измерение времени выполнения кода
  31. Объединение списков с использованием itertools.chain
  32. Работа с изменяемыми коллекциями
  33. Метод split() для разделения строк
  34. Подсчет элементов с помощью Counter из collections
  35. Методы в Python
  36. Транспонирование 2D-массива с помощью zip
  37. Обновление и получение данных в SQLite
  38. Пустой оператор pass в Python
  39. Создание новых списков через list comprehensions
  40. Работа с очередями в Python
  41. Получение списка файлов в директории с использованием os
  42. Сортировка элементов в Python
  43. Работа с буфером обмена на Python
  44. PATCH-запрос с библиотекой requests
  45. Сравнение объектов в Python

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