Курс 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. Генерация случайных данных в NumPy
  2. Работа с Event() в threading
  3. Обход дочерних элементов BeautifulSoup
  4. Просмотр внешнего файла в Python
  5. Подсчет элементов в Python
  6. Управление памятью в numpy.
  7. Работа со словарями в Python
  8. Комментарии в Python
  9. Операции со строками в Python
  10. Поиск с помощью регулярных выражений
  11. Сравнение def и lambda-функций
  12. Округление чисел с помощью round
  13. Извлечение чисел из текста
  14. Замена атрибута в именованном кортеже
  15. Модуль sys: основы
  16. Упрощение условных выражений с тернарным оператором
  17. Разделение строки с помощью re.split()
  18. Python reversed() функция
  19. Функции min(), max(), sum()
  20. Удаление элементов из списка в Python
  21. Переопределение метода sub
  22. Загрузка постов Instagram
  23. Установка random seed в Python
  24. Многострочные комментарии в Python
  25. Работа с комплексными числами в Python
  26. Логические значения в Python
  27. Создание директории в Python
  28. Шаблоны и наследование в Flask
  29. Проверка наличия элемента в списке
  30. Конкатенация строк в Python
  31. Аргумент по умолчанию
  32. Перезагрузка оператора в Python
  33. Функция zip() в Python
  34. Метод getitem для доступа к элементам последовательности
  35. Поиск самого частого элемента
  36. Оператор «моржа» (Walrus Operator)
  37. Объединение словарей в Python
  38. Python enumerate() использование
  39. Подсказки типов в Python
  40. Оператор is в Python
  41. Функциональное программирование.
  42. Комментарии в Python.
  43. Декораторы в Python
  44. Обработка исключений в Python
  45. Проверка запуска скрипта или импорта модуля

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