Курс 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. Атрибуты класса и экземпляра
  2. Получение значений из словарей
  3. Функции с дополнением
  4. Обход дочерних элементов BeautifulSoup
  5. Объединение словарей в Python
  6. Лямбда-функции в Python
  7. Оптимизация строк в Python
  8. Установка и использование Python-dateutil
  9. Операция += для списков
  10. Обработка исключений в Python
  11. Оптимизация создания строк
  12. Методы __repr__ и __str__ в Python
  13. Преобразование числа в список цифр
  14. Функции map, filter, reduce
  15. Сортировка с параметром key
  16. Быстрый поиск кода
  17. Работа с географическими данными.
  18. Псевдонимы в Python
  19. Установка и использование Logzero
  20. Установка Git и AWS CLI
  21. Форматирование данных с помощью pprint
  22. Расширение информации об ошибке в Python
  23. Создание копии итератора
  24. Обработка исключений в Python
  25. Применение функции к списку
  26. Форматирование строк в Python
  27. Удаление элементов по срезу
  28. Объединение словарей в Python
  29. Работа с файлами и директориями в Python.
  30. Работа с NumPy.linalg
  31. Перетасовка списков в Python
  32. Копирование списков в Python
  33. Логические значения в Python
  34. Профилирование с cProfile
  35. Управление IP-адресами через прокси
  36. Атрибуты массивов в Numpy
  37. Конвертация текстовых чисел с помощью Numerizer
  38. Возвращение нескольких значений через кортеж или класс
  39. Объединение словарей в Python
  40. Инициализация структур данных
  41. Определение относительного пути
  42. Извлечение статей с newspaper3k
  43. Гибкие функции Python
  44. Запуск файлового сервера

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