Курс 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. Работа с изображениями PIL
  4. Оптимизация памяти в Python
  5. Python Аргументы по умолчанию
  6. Progress с библиотекой tqdm
  7. Форматирование чисел в Python
  8. Хранение данных
  9. Декоратор total_ordering для класса Point
  10. Выключение компьютера с помощью Python
  11. Расчет времени выполнения
  12. Вычисление натурального логарифма в NumPy
  13. Операции с числами в Python
  14. Декоратор total_ordering для сравнения объектов
  15. Enum в Python
  16. Python reversed() vs срез[::-1]
  17. Метод setdefault() в Python
  18. Проверка памяти объекта
  19. Управление ресурсами в Python
  20. Создание и обучение модели с Keras
  21. Работа с Telegram API на Python
  22. Работа с изображениями Pillow
  23. Проверка однородности элементов списка
  24. Получение списка кортежей из словаря
  25. Функции в Python
  26. Работа с комбинациями в Python.
  27. Модуль Operator в Python
  28. TypedDict для kwargs в Python 3.12
  29. Замер времени выполнения кода
  30. Ошибка NotImplemented в Python
  31. Удаление знаков препинания в Python
  32. Выражения-генераторы в Python
  33. Создание словаря в Python
  34. Метод rsub для пользовательских чисел
  35. Проверка дубликатов в Python
  36. Преобразование генераторов в циклы
  37. Обработка данных в Python
  38. Модуль pprint: улучшение вывода данных
  39. Подсчет часто встречающихся элементов
  40. Итерация по коллекции в Python
  41. Удаление первого элемента списка
  42. Создание генераторов в Python
  43. Реверс строки в Python
  44. Удаление дубликатов из списка
  45. Управление сессиями в Python
  46. Функция reduce() из модуля functools
  47. Применение функции к каждому элементу списка
  48. Оператор объединения словарей
  49. Автоматизация действий с Pyautogui

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