Курс 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. Ограничение ресурсов в Python
  2. Цепные операции в Python
  3. Сортировка в Python
  4. Отображение HTML кода в Python
  5. Работа с CSV файлами
  6. Управление контекстом с помощью декоратора contextmanager
  7. Функция zip() — объединение последовательностей
  8. Запрос DELETE с библиотекой requests
  9. Вызов функций по строке в Python.
  10. Генерация QR-кодов с Python
  11. Метод __int__ в Python
  12. Просмотр атрибутов и методов класса
  13. Сортировка с помощью key
  14. Именованные срезы в Python
  15. Атрибуты объекта в Python
  16. Проверка дублей в списке.
  17. Операции с матрицами в Python
  18. Разбиение строки в Python
  19. Отладчик pdb: начало работы
  20. Принципы LSP и ISP в Python
  21. Метод get() в Python
  22. Обновление множества в Python
  23. Работа с deque в Python
  24. Секреты Python
  25. Экспорт данных в файл.
  26. Обмен значений переменных в Python
  27. Управление пакетами с pip
  28. Установка Home Assistant
  29. Использование модуля __future__
  30. Форматирование объектов с модулем pprint
  31. Проверка наличия элемента в списке
  32. Python OrderedDict и fromkeys() — работа с словарями
  33. Показ всплывающих окон Tkinter
  34. Работа с модулем bisect
  35. Операции с комплексными числами
  36. Реверс строки и списка в Python.
  37. Удаление файлов с shutil.os.remove()
  38. Форматирование строк в Python
  39. Метод rmatmul для пользовательских матриц
  40. Создание функций с произвольным количеством аргументов
  41. Итерации в Python
  42. Порядок и длина множеств в Python
  43. Python Метод sleep() времени
  44. Использование super() в Python
  45. Нахождение максимального значения и его индекса в списке

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