Курс 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. F-строки в Python 3.8
  2. Преобразование строк в числа в Python
  3. Python: отсутствие точек с запятыми
  4. Извлечение статей с newspaper3k
  5. Использование эмодзи в Python
  6. Python itertools combinations() — группировка элементов
  7. Модуль os: работа с файлами и папками
  8. Оператор «is not» в Python
  9. Удаление элемента по индексу
  10. Работа с каталогами в Python
  11. Генерация фальшивых данных с Faker
  12. Сложение матриц в NumPy
  13. Анонимные функции Lambda
  14. Создание .exe файла с pyinstaller
  15. Ключевое слово global в Python
  16. Обработка исключений в Python
  17. Оператор in для проверки наличия элемента
  18. Использование super() в Python
  19. Перетасовка списков в Python
  20. Создание именованных кортежей в Python
  21. Выключение компьютера с помощью Python
  22. Преобразование генераторов в циклы
  23. Изучение объектов с помощью dir()
  24. Считывание бинарного файла в Python
  25. Проверка наличия элемента в списке
  26. Срезы в Python
  27. Безопасные SQL-запросы в Python 3.11
  28. Объединение словарей в Python
  29. Сравнение строк в Python
  30. Python-dateutil — работа с датами
  31. Проверка условий в Python
  32. Сохранение Unicode в JSON
  33. Преобразование строк в числа с плавающей запятой
  34. Равенство и идентичность в Python
  35. Многопоточность в Python
  36. Работа с Telegram API на Python
  37. Операции со строками в Python
  38. Блок try…finally в Python
  39. Функция pow() — возвести число в степень
  40. Преобразование многоуровневого словаря
  41. Кортеж в Python: создание, доступ, изменение
  42. Установка Python3.7 и PIP
  43. Удаление ссылок в Python
  44. Получение текущей директории
  45. Работа с файлами в Python
  46. Подсчет частотности элементов в Python
  47. Различия символов в Python
  48. Манипуляция формой массива в Numpy
  49. Замена переменных в Python

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