Курс 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. Парсинг веб-страниц с Beautiful Soup
  2. Расчет времени выполнения
  3. Ускорение выполнения кода в Python
  4. Управление памятью в numpy.
  5. Логирование в Python
  6. Фильтрация последовательности
  7. Проверка версии Python
  8. Counter() — подсчет элементов
  9. Удаление символа из строки
  10. Оценка точности модели
  11. Оператор del в Python
  12. Логические операторы в Python
  13. Замена символов в Python
  14. Создание списков в Python
  15. Работа с Requests для HTTP-запросов
  16. Игра «Камень, ножницы, бумага» — Python
  17. Библиотека itertools: объединение списков
  18. Множественное назначение в Python
  19. Работа с набором данных CIFAR10 в PyTorch
  20. Создание уникального проекта
  21. Объединение словарей в Python
  22. Запрос DELETE с библиотекой requests
  23. Библиотека Emoji: использование смайлов в Python
  24. Функциональное программирование.
  25. Python enumerate() для работы с индексами
  26. Красивый вывод списка
  27. Функция zip() в Python
  28. %pinfo: получение информации об объекте
  29. Делегирование в Python
  30. Структуры данных в Python
  31. Lambda-функция в Python: использование с map() и sum()
  32. Принципы SRP и OCP
  33. Ветвление выражения в Python
  34. Запуск Python из интерпретатора
  35. Дефолтные параметры в Python
  36. Создание словаря через dict comprehension
  37. Объединение строк с помощью метода join
  38. Отделение звука от видео
  39. Встраивание HTML в Jupyter Notebook
  40. Поиск с помощью регулярных выражений
  41. Передача неизвестных аргументов в Python.
  42. Модуль math: константы π и e

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