Курс 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. Декоратор Ajax required
  3. Принципы Zen Python
  4. Преобразование регистра строк
  5. Преобразование списка в словарь через генератор
  6. Цикл while в Python
  7. Python-dateutil — работа с датами
  8. Списковое включение в Python
  9. Работа с дробями в Python
  10. Доступ к локальным переменным
  11. Блок else в обработке исключений
  12. Создание графики с черепахой
  13. Метод join() для объединения элементов строки
  14. Объединение словарей в Python
  15. Объединение словарей в Python
  16. Частичное применение функций в Python
  17. Официальный канал Python в Telegram
  18. Обмен значений переменных в Python
  19. Python Метод sleep() времени
  20. Работа с контекстными менеджерами
  21. Создание .exe файла с pyinstaller
  22. Генерация фальшивых данных с Faker
  23. Сложные типы данных в Python
  24. Преобразование документов в PDF с помощью Spire.Office
  25. Метод index() в Python
  26. Сортировка слиянием
  27. Функции в Python: создание и вызов
  28. Оператор walrus в Python
  29. Метод округления чисел
  30. Область видимости переменных
  31. Создание коллекций из генератора
  32. Создание GUI с Tkinter: Entry
  33. Возврат нескольких значений
  34. Фильтрация списка чисел
  35. Создание новых списков в Python
  36. Измерение времени выполнения кода с помощью time
  37. Метод splitlines() для разделения строк
  38. Удаление ссылок в Python
  39. Работа со словарями с defaultdict из collections
  40. Декораторы в Python
  41. Списковое включение в Python
  42. Потоковый ввод в Python
  43. Установка и использование библиотеки google
  44. Установка User-Agent в Python
  45. Работа с f-строками 2.0
  46. Работа с пользовательским вводом
  47. Стать Python-разработчиком
  48. Протокол управления контекстом

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