Курс 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. Переопределение метода len
  3. Метод rmatmul для обратного матричного умножения
  4. Python Метод Union Множеств
  5. Методы Python для работы с данными
  6. Итераторы с потерямиZIP
  7. Python Calendar Usage
  8. Переворот строки с помощью срезов
  9. Векторизация в Python с NumPy.
  10. Генерация чисел с range()
  11. Распаковка значений в Python
  12. Установка и использование библиотеки google
  13. Установка Python3.7 и PIP
  14. Numpy: использование Ellipsis
  15. Оператор (*) в Python
  16. Замыкания в Python
  17. Метод append() для списка
  18. Отображение HTML кода в Python
  19. Создание функций высшего порядка
  20. Объединение словарей в Python
  21. Область видимости переменных
  22. Метод join() для объединения строк
  23. Построение графиков в терминале с bashplotlib
  24. Проверка индексов коллекции
  25. Python-dateutil — работа с датами
  26. Извлечение аудио из видео
  27. Передача словаря через **kwargs
  28. Работа с модулем glob в Python
  29. Пересечение списков с использованием множеств
  30. Функция product() в Python
  31. Создание и обучение модели с Keras
  32. Работа с JSON данными в Python
  33. Python: динамическая типизация и проверка типов
  34. Названия переменных
  35. Генерация строк с .join()
  36. Метод __int__ в Python
  37. Разрешение имен в Python
  38. Python 3.12: Псевдонимы типов
  39. Создание и использование ChainMap
  40. Списковый компрехеншен.
  41. Метод is_absolute() для PurePath
  42. Метод get для словаря
  43. Явный импорт в Python
  44. Создание пустых функций и классов в Python
  45. Управление User-Agent в Python

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