Курс 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. Проверка ввода с помощью isdigit
  2. Оптимизация памяти в Python
  3. Переопределение метода __pow__
  4. Генераторы в Python
  5. Группы исключений в Python
  6. Сортировка в Python
  7. Реверс строки в Python
  8. Списковое включение в Python
  9. Проверка версии Python
  10. Парсинг веб-страниц с Beautiful Soup
  11. Хэш-функции и метод цепочек
  12. Сравнение строк в Python
  13. Работа со временем в Python
  14. Функции в Python: создание и вызов
  15. Список переменных в Python
  16. Создание новых списков через list comprehensions
  17. Разработка игры Pong с turtle
  18. Применение команды break
  19. Работа с zip-архивами в Python
  20. Оператор break в Python
  21. Условные выражения в Python
  22. Удаление дубликатов из списка с помощью dict.fromkeys
  23. Объединение словарей в Python
  24. Использование html-скриптов в Jupyter Notebook
  25. Метод сравнения объектов в Python
  26. Создание функций высшего порядка
  27. Списковые включения в Python
  28. Оператор continue в Python
  29. Курс по дообучению ChatGPT
  30. Метод setdefault() в Python
  31. Проверка существования переменной с оператором :=
  32. Ограничение ресурсов в Python
  33. Исправление ошибки NameError
  34. Объединение списков с использованием itertools.chain
  35. Транспонирование 2D-массива с помощью zip
  36. Возврат нескольких значений из функции
  37. Создание треугольника Паскаля
  38. Список переменных с %who
  39. Доступ к локальным переменным
  40. Объединение коллекций в Python
  41. Создание итератора
  42. Копирование объектов в Python
  43. Преобразование данных в Python
  44. Модуль pprint
  45. Генераторы в Python
  46. Настройка вывода в Numpy
  47. Создание функций с произвольным количеством аргументов
  48. Переменные класса и экземпляра
  49. Создание и удаление объектов
  50. Фильтрация списка от «ложных» значений

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