Курс 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 и Shell
  3. Быстрый поиск кода
  4. Метод join() для объединения элементов строки
  5. Перебор элементов списка в Python
  6. Упрощенный вывод данных в Python
  7. Antigravity модуль
  8. Обработка исключений в Python
  9. Оператор Walrus в Python 3.8
  10. Синтаксис переменных цикла в Python
  11. Распаковка элементов массива
  12. Мониторинг работы программы Py-spy
  13. Декораторы в Python
  14. Динамические маршруты во Flask
  15. Оператор is в Python
  16. Создание тестовых данных с Faker
  17. Округление дробей в Python
  18. Тернарный оператор в Python
  19. Управление импортом в Python
  20. Глобальные переменные в Python
  21. Удаление эмодзи с помощью pandas
  22. Метод join() для объединения элементов строки
  23. Работа с *args и **kwargs в Python
  24. Печать календаря в Python
  25. Оформление кода на Python
  26. Подсчет элементов с помощью Counter из collections
  27. Библиотека sh: использование команд bash в Python
  28. Модуль subprocess: запуск внешних команд
  29. Названия столбцов в Python таблицах
  30. Методы и функции в Python
  31. Генераторы по генератору
  32. Просмотр внешнего файла в Python
  33. Расчет времени выполнения
  34. Область видимости переменных
  35. Профилирование данных с Pandas.
  36. Автоматизация скриптов на AWS Lightsail.
  37. Numpy: разбиение массивов
  38. Перегрузка операторов в Python
  39. Запрос пароля с помощью getpass
  40. Объединение кортежей в Python
  41. Dict Comprehension в Python
  42. Генераторы в Python
  43. Работа с эмодзи в Python
  44. Создание и инициализация объектов
  45. Печать календаря

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