Курс 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. Обработка исключения UnboundLocalError
  2. Аннотации типов в Python
  3. Очистка списка от False, None, 0, «»
  4. Декораторы в Python
  5. F-строки в Python
  6. Преобразование строк в числа в Python
  7. Получение текущего времени в Python
  8. Объединение коллекций в Python
  9. Функции all и any в Python
  10. Округление дробей в Python
  11. Создание и операции с дробями
  12. Создание множества в Python
  13. Комментарии в Python.
  14. Преобразование текста в речь с Python
  15. Оператор обр. импликации
  16. Логические операторы в Python
  17. Отношения подклассов в Python
  18. Игра «Камень, ножницы, бумага» — Python
  19. Лямбда-функции в Python
  20. Использование функции enumerate()
  21. Лямбда-функции в Python
  22. Область видимости переменных
  23. Правила именования переменных
  24. Модуль os в Python: работа с файлами
  25. Избегание изменяемых аргументов
  26. Переопределение метода divmod
  27. Сортировка HTML-элементов
  28. Метод gt в Python
  29. Конвертация текстовых чисел с помощью Numerizer
  30. Проверка элемента в множестве.
  31. Применение команды break
  32. Лимиты на ресурсы Python
  33. Форматирование строк в Python
  34. Выключение компьютера с помощью Python
  35. Запрос DELETE с библиотекой requests
  36. Изучение объектов с помощью dir()
  37. Декораторы в Python
  38. Метод setitem в Python
  39. Метод join() для объединения строк
  40. Замена символов в строке
  41. Создание итератора
  42. Создание уникального проекта
  43. enumerate() в Python для работы с индексами
  44. Проектирование Singleton с метаклассом
  45. Роль запятой в Python
  46. Итераторы в Python
  47. Карта бомбоубежищ в Москве и Питере
  48. Работа со строками в Python

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