Курс 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 3.12
  2. Работа со строками в Python.
  3. Функция __init__ в Python
  4. Логические значения в Python
  5. Проверка индексов коллекции
  6. Модуль pprint: улучшение вывода данных
  7. Работа с очередями в Python
  8. Реализация операции -= для пользовательского класса
  9. Оператор walrus в Python
  10. Работа с zip-архивами в Python
  11. Генераторы в Python
  12. Применение функции к списку
  13. Добавление элементов в список: append() vs extend()
  14. Возврат нескольких значений
  15. Глобальные переменные в Python
  16. Избегайте двойного подчеркивания
  17. UserString в Python
  18. Цикл for в Python
  19. Получение пути к текущему скрипту с помощью os
  20. Методы работы со строками в Python
  21. 9 уловок для чистого кода
  22. Функция enumerate() — Python
  23. Округление чисел с помощью round
  24. Метод ne для сравнения объектов
  25. Python enumerate() использование
  26. Путь к интерпретатору Python
  27. Оператор умножения для вектора
  28. Работа со словарями
  29. inspect в Python: анализ кода
  30. Работа с каталогами в Python
  31. Удаление специальных символов
  32. Подписка на @SelectelNews
  33. Тест скорости набора текста на Python
  34. Искажение имен в Python
  35. Умножение строк и списков
  36. Склеивание строк через метод join()
  37. Генераторы в Python
  38. Функции all и any в Python
  39. Решатель судоку на Python с pygame
  40. Распаковка элементов последовательности
  41. Визуализация пропусков данных
  42. Вычисление натурального логарифма в NumPy
  43. Удаление дубликатов с помощью множеств
  44. Бинарный поиск
  45. Обработка исключений
  46. Numpy: объединение массивов

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