Курс 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. Методы __repr__ и __str__ в Python
  2. Капитализация строк
  3. Списковое включение в Python
  4. Создание таблиц в Python с PrettyTable
  5. Работа с словарями в Python
  6. Атрибуты массивов в Numpy
  7. Функция findall() для поиска вхождений строки
  8. Роль запятой в Python
  9. Удаление дубликатов из списка
  10. Проверка подстроки в строке
  11. Поиск простых чисел
  12. Ускорение выполнения кода в Python
  13. Работа с файлами в Python
  14. Протокол управления контекстом
  15. Нахождение пересечения множеств
  16. Функции в Python: создание и вызов
  17. Генераторы по генератору
  18. Оператор морж в Python 3.8
  19. Генерация UUID в Python
  20. Генерация случайных чисел Python
  21. Метод join() для объединения элементов
  22. Python: цикл for и оператор присваивания
  23. Метод __getitem__ в Python
  24. Создание namedtuple из словаря
  25. Проверка условий в Python
  26. Преобразование PowerPoint в PDF.
  27. Копирование словарей и списков в Python
  28. Обновление множества в Python
  29. Структура данных deque в Python
  30. Анонимные функции Lambda
  31. Работа с исключениями в Python
  32. Сравнение строк в Python
  33. Итерация по копии коллекции
  34. Оператор == в Python
  35. Многострочные комментарии в Python
  36. Мониторинг работы программы Py-spy
  37. Оформление кода на Python
  38. Модуль itertools: эффективная работа с итераторами
  39. Тестирование модели в PyTorch
  40. Enum в Python: создание и использование перечислений
  41. Счетчик ссылок в Python
  42. Список и кортеж в Python
  43. Применение функции map() в Python
  44. Создание словаря в Python
  45. Работа с модулем glob в Python
  46. capitalize() — изменение регистра первого символа строки
  47. Возвращение нескольких значений

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