Курс Python → Возврат значений из генератора

Начиная с версии Python 3.3, была добавлена возможность использовать инструкцию return внутри генераторов. Это значительное улучшение, которое позволяет возвращать значения из генератора, что ранее было ограничено только использованием ключевого слова yield. Теперь можно использовать return для возврата значений и завершения работы генератора.

Однако, при использовании return в генераторе, может возникнуть некоторая путаница с ключевым словом yield from. Например, если в генераторе использовать выражение yield from, то return будет работать по-другому. Это может привести к непредвиденным результатам или ошибкам в вашем коде, если не учитывать это особенное поведение.

Согласно официальной документации Python, при использовании инструкции return expr в генераторе, возникает исключение StopIteration(expr), которое сигнализирует о завершении работы генератора и возвращает указанное значение expr. Это важно помнить, чтобы корректно обрабатывать исключения и управлять потоком выполнения программы.


def generator_function():
    yield 1
    yield 2
    return 3

gen = generator_function()
try:
    while True:
        print(next(gen))
except StopIteration as e:
    print("Returned value:", e.value)

Приведенный выше пример демонстрирует использование инструкции return в генераторе. После возврата значения 3 с помощью return, генератор завершает свою работу и возникает исключение StopIteration с переданным значением. Это позволяет программе корректно завершить выполнение и получить возвращенное значение для дальнейшей обработки.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Автоматизация скриптов на AWS Lightsail.
  2. Скрытие вывода данных
  3. Руководство по использованию Colorama
  4. Работа с дробями в Python
  5. Python: отличительная особенность — отступы
  6. Сравнение строк в Python
  7. CLI-инструмент howdoi
  8. Нахождение самого длинного слова в списке с помощью max
  9. Разница между датами
  10. Методы split() и join() — Python строк.
  11. Управление асинхронными задачами с помощью Semaphore
  12. Операторы сравнения в Python
  13. Работа с атрибутом dict
  14. Создание обратного итератора
  15. Beautiful Soup — извлечение данных из HTML
  16. Представление бесконечности в Python
  17. Генератор данных в Keras
  18. Метод ipow для возведения в степень
  19. Ускорение кода с помощью векторизации
  20. Проверка существования переменной с оператором :=
  21. Атрибуты класса и экземпляра
  22. Импорт и использование модулей в Python
  23. Добавление элемента к кортежу
  24. Работа с библиотекой xkcd
  25. Функция all() в Python
  26. Получение идентификатора объекта в памяти
  27. Визуализация пропусков данных
  28. Модуль os в Python: работа с файлами
  29. Декораторы с @wraps
  30. Создание циклической ссылки
  31. Создание уникального множества
  32. Печать календаря
  33. Добавление цвета в консоли
  34. Работа с буфером обмена на Python
  35. Переворот строки
  36. Логирование с Logzero
  37. Экспорт данных с помощью writefile
  38. Удаление falsy-значений из списка с помощью filter
  39. Считывание бинарного файла в Python
  40. Работа с файлами в Python
  41. Генератор бросков кубиков
  42. Оператор match в Python
  43. Функции map, filter и reduce
  44. Работа с датами в Python
  45. UserString в Python

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