Курс 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. Модуль os: работа с файлами и папками
  2. Вывод сложных структур данных с помощью pprint
  3. JMESPath в Python
  4. Хэш-функции в Python
  5. Работа с URL-адресами в Python
  6. Объединение списков в строку
  7. Транспонирование матрицы в Python
  8. Проверка подстроки в строке
  9. Расширение информации об ошибке в Python
  10. UserList в Python: Описание и примеры использования
  11. Работа с контекст-менеджером «with»
  12. Работа с SQLite в Python
  13. Профилирование кода на Python
  14. Методы shutil для работы с файлами
  15. Округление чисел с помощью round
  16. Функция format() в Python
  17. Моржовый оператор в Python 3.8
  18. Перевод эмодзи и эмотиконов.
  19. Установка библиотек в Python
  20. Регистрация на TenChat
  21. Поиск частых элементов в списке
  22. Ввод нескольких значений
  23. Очистка данных в Python
  24. Создание Radio кнопок в tkinter
  25. Транспонирование 2D-массива с помощью zip
  26. Прокачанный трейсинг ошибок
  27. Метод remove() для удаления элемента из списка
  28. Метод is_absolute() для PurePath
  29. Обмен значений переменных в Python
  30. Атрибуты класса и экземпляра
  31. Счетчик ссылок в Python
  32. Освоение Python
  33. Измерение времени выполнения кода
  34. Поиск наиболее частого элемента
  35. List Comprehension Tutorial
  36. Генерация UUID в Python
  37. Поиск простых чисел
  38. Профилирование с Pandas
  39. Рекурсия для обращения строки
  40. Метод __complex__ в Python
  41. Применение функции map() в Python
  42. Преобразование в float
  43. Работа с CSV в Python
  44. Генераторы по генератору

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