Курс 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. Создание GUI на Tkinter
  2. Отправка HTTP-запросов с User-Agent
  3. Перехват исключений в Python
  4. Транспонирование 2D-массива с помощью zip
  5. Метод join() для объединения элементов строки
  6. *args и **kwargs в Python
  7. Сравнение объектов в Python
  8. Ускорение кода с помощью векторизации
  9. Преобразование документов в PDF с помощью Spire.Office
  10. Создание словаря с значением по умолчанию
  11. Метод get() для словарей
  12. Метод setdefault() в Python
  13. Построение графиков в терминале с bashplotlib
  14. Отправка POST-запроса в REST API
  15. Вывод сложных структур данных с помощью pprint
  16. Определение относительного пути
  17. Выход из профиля в Django
  18. Функция zip() — объединение последовательностей
  19. Проектирование Singleton с метаклассом
  20. Изменение списка срезами
  21. Модуль Antigravity в Python 3
  22. Mad Libs Generator
  23. Метод ipow для возведения в степень
  24. Получение ID текущего процесса
  25. Оператор распаковки в Python
  26. Определение объема памяти объекта
  27. Виртуальное окружение Python
  28. Реверс строки и списка в Python.
  29. Комментарии в Python.
  30. Использование подчеркивания в REPL
  31. Объединение словарей в Python
  32. Открытие и редактирование скриптов Python
  33. Основные методы NumPy
  34. Декораторы в Python
  35. Подсчет частоты элементов с Counter
  36. Добавление элемента к кортежу
  37. Форматирование строк в Python
  38. Списки в Python
  39. Получение атрибутов и методов класса
  40. Деление в Python
  41. Объединение списков в строку
  42. Проверка строки на палиндром
  43. Форматирование вывода с F-строками
  44. Аннотации типов в Python
  45. Каналы Senior: Python, Java, Frontend, SQL, C++
  46. Установка пакетов с помощью pip
  47. Установка Home Assistant
  48. Основы работы с базами данных в Python

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