Курс 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. Оптимизация памяти с __slots__
  2. Магические методы в Python
  3. Работа с файловой системой в Python
  4. Форматирование строк в Python
  5. Метод eq для сравнения объектов
  6. Работа с IP-адресами в Python
  7. Преобразование данных в Python
  8. Объединение списков в Python
  9. Декораторы в Python
  10. Оптимизация памяти с slots
  11. Управление сессиями в Python
  12. Базовые объекты Python
  13. Использование super() в Python
  14. Кортежи в Python: особенности и преимущества
  15. Python Enumerate
  16. Класс Counter() для подсчета элементов
  17. Преобразование списка в словарь через генератор
  18. Сортировка данных в Python
  19. Поиск элементов BeautifulSoup
  20. Нахождение пересечения множеств
  21. Работа с комплексными числами
  22. Введение в PyTorch
  23. Асинхронное выполнение задач в процессах
  24. Переменные в Python: сокращение гласных
  25. Создание Radio кнопок в tkinter
  26. Основы работы с базами данных в Python
  27. Нахождение хеша для бесконечности и NaN в Python
  28. Объединение словарей в Python
  29. Удаление файлов с shutil.os.remove()
  30. Проверка на истинность объектов в Python
  31. Логирование с Loguru
  32. Solidity для DeFi Ethereum
  33. Выражения-генераторы в Python
  34. Создание списков в Python
  35. Работа с модулем bisect
  36. Генерация QR-кодов с Python
  37. Генерация строк с .join()
  38. Создание namedtuple из словаря
  39. Инверсия списков и строк в Python
  40. Генераторные функции в Python
  41. Функция product() из itertools
  42. Замена подстроки
  43. Метод __complex__ в Python
  44. Заказ карты Тинькофф Black

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