Курс 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. Форматирование даты с strftime()
  2. Реверс строки в Python
  3. Работа с Colorama
  4. Копирование списков в Python
  5. Основы работы со строками в Python
  6. Метод setdefault() в Python
  7. Возврат нескольких значений
  8. Копирование и вставка текста в Python
  9. Работа с путями в Python
  10. Оператор in для Python
  11. Разделение строк в Python
  12. Извлечение аудио из видео
  13. Метод gt в Python
  14. Именование столбцов в Python с pandas
  15. Тип CodeType в Python.
  16. Работа с JSON данными в Python
  17. Избегайте ошибку FileNotFoundError
  18. Активация Matplotlib в Jupyter
  19. Поиск индексов подстроки
  20. Обмен данными с asyncio.Queue
  21. Декодирование байтов в строку
  22. Enum в Python
  23. Список переменных в Python
  24. JMESPath в Python
  25. Использование двоеточия в Python
  26. Методы сравнения множеств
  27. Вложенные циклы в Python
  28. Управление памятью в numpy.
  29. Работа с очередями в Python
  30. Работа с массивами в Numpy
  31. Оператор умножения для вектора
  32. Округление в Python
  33. Принципы SRP и OCP
  34. Оформление кода на Python
  35. Повторение элементов в Python
  36. Разделение строки на пары ключ-значение.
  37. Избегайте пустого списка
  38. Создание новых списков в Python
  39. Участие в сообществе @selectel
  40. Многопроцессорное программирование в Python
  41. Python reversed() функция
  42. Magic Commands — улучшение работы с Python
  43. Monkey Patching в Python
  44. Расширение операции побитового «и» в Python
  45. Структурирование именованных констант
  46. Конкатенация строк с методом join()
  47. Анонимные функции в Python
  48. CLI-инструмент howdoi

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