Курс 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. Работа с модулем os в Python
  2. Defaultdict в Python
  3. Транспонирование 2D-массива с помощью zip
  4. Методы split() и join() — Python строк.
  5. Функции map, filter, reduce
  6. Создание вложенного генератора
  7. Методы работы со строками в Python
  8. Обрезка изображения с Pillow
  9. Логические значения в Python
  10. Отправка POST-запроса в REST API
  11. Функция reversed() в Python
  12. Создание множества в Python
  13. Непрерывная проверка в Python
  14. Создание копии итератора
  15. Округление чисел с помощью round
  16. Перебор элементов списка в Python
  17. Блок else в обработке исключений
  18. Создание словарей с defaultdict
  19. Нахождение разницы между списками в Python
  20. Очистка вывода в Python
  21. Принципы SRP и OCP
  22. Установка Git и AWS CLI
  23. Работа с zip()
  24. Модуль Antigravity в Python 3
  25. Добавление элемента в список.
  26. Декоратор total_ordering для класса Point
  27. Оператор объединения словарей
  28. Переменная с нижним подчеркиванием
  29. Работа с collections в Python
  30. Приближение чисел в Python
  31. Автоматизация действий с Pyautogui
  32. Логирование с Logzero
  33. Декораторы с @wraps
  34. Работа с атрибутом dict
  35. Оператор «or» в Python
  36. Форматирование строк в Python
  37. Регистрация на хакатоне
  38. Форматирование кода на Python
  39. Пространство имен в Python
  40. Перевод двоичного кода в целое число
  41. Получение текущего времени в Python
  42. Преобразование текста в нижний регистр
  43. Нарезка списков в Python
  44. Сортировка данных в Python
  45. Переименование файлов в Python
  46. Возврат нескольких значений
  47. Работа со строками в Python
  48. Переворот строки с использованием цикла

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