Курс 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. Метод rlshift для битового сдвига
  3. Работа с YAML в Python
  4. Цикл for в Python
  5. Расчет времени выполнения кода
  6. Создание и обучение модели с Keras
  7. Взаимодействие с внешними процессами в Python
  8. Объединение словарей в Python 3.5+
  9. Установка виртуального окружения Python
  10. Встраивание HTML в Jupyter Notebook
  11. Сортировка HTML по CSS-селектору
  12. Операторы увеличения и уменьшения в Python
  13. Упрощение работы с JSON-данными в Python
  14. Метод join() для объединения элементов строки
  15. Получение комбинаций в Python
  16. Избегайте ошибку FileNotFoundError
  17. Оператор «is not» в Python
  18. Переопределение метода xor в Python
  19. Работа с argparse
  20. Форматирование объектов с модулем pprint
  21. Множественные конструкторы в Python
  22. Получение частей дроби
  23. Возврат нескольких значений из функции
  24. Ограничение ресурсов в Python
  25. Удаление ключей из словаря
  26. Разность множеств
  27. lru_cache оптимизация функций
  28. Модуль inspect
  29. Метод get() для словарей
  30. Установка Home Assistant
  31. Хешируемые ключи в Python
  32. Очистка строки в Python
  33. Python Метод Union Множеств
  34. Ускорение кода с помощью векторизации
  35. Метод lt для сортировки объектов
  36. Асинхронное выполнение задач в процессах
  37. Работа с необработанными строками
  38. Генераторы данных
  39. Генераторы в Python
  40. Метод join() для объединения элементов
  41. Генерация тестовых данных с factory_boy
  42. Обработка ошибок в JSON данных
  43. Конкатенация строк в Python
  44. Отрицательные индексы списков в Python
  45. Работа с файлами и директориями в Python.
  46. Отправка поздравлений по дню рождения
  47. Декораторы в Python

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