Курс 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. Библиотека sh: удобные команды терминала
  2. Сравнение строк в Python
  3. Генераторы словарей и множеств
  4. Создание GUI на Tkinter
  5. Обратное распространение ошибки
  6. Замена атрибута в именованном кортеже
  7. Поиск с библиотекой Google
  8. Форматирование строк в Python
  9. Поиск шаблона в строке
  10. Структурирование данных с Pydantic
  11. Декораторы в Python
  12. Обработка исключений в Python
  13. Удаление символов новой строки в Python.
  14. Управление памятью в Python
  15. Поиск HTML-элементов с BeautifulSoup
  16. Создание генераторов
  17. Расширение информации об ошибке в Python
  18. Работа со строками в Python
  19. Установка и использование pyshorteners
  20. Преобразование текста в речь с Python
  21. Декораторы в Python
  22. Генератор данных в Keras
  23. Комментарии в Python
  24. Получение идентификатора объекта в памяти
  25. Поиск email
  26. Установка виртуального окружения Python
  27. Создание .exe файла с pyinstaller
  28. Модуль pprint
  29. Виртуальное окружение Python
  30. Методы в Python
  31. Отображение графиков в Jupyter с Matplotlib
  32. Кортеж в Python: создание, доступ, изменение
  33. Преобразование данных в Python
  34. Избегайте ошибку FileNotFoundError
  35. Методы shutil для работы с файлами
  36. Создание и обучение модели с Keras
  37. Определение локальных переменных в Python
  38. Объединение списков в Python.
  39. Работа с пользовательским вводом
  40. Распаковка аргументов в Python
  41. Метод count в Python: почему count(», ») возвращает 4?
  42. Генераторы списков
  43. Удаление элементов во время итерации
  44. Функции map() и reduce() в Python

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