Курс 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. Работа с файлами в Python
  2. Принцип одной функции
  3. Работа со строками в Python
  4. Выбор редактора кода.
  5. Работа с изменяемыми коллекциями
  6. Numpy: использование Ellipsis
  7. Подсчет элементов с помощью Counter из collections
  8. Удаление дубликатов из списка
  9. Многострочные строки в Python
  10. Создание Radio кнопок в tkinter
  11. Использование html-скриптов в Jupyter Notebook
  12. Очистка данных с помощью pandas
  13. Передача параметров в Python
  14. Декоратор для группы пользователей в Django
  15. Объединение словарей в Python
  16. Прокачанный трейсинг ошибок
  17. Работа с функцией next() в Python
  18. Работа с датой и временем в Python
  19. Поиск индекса элемента
  20. Создание списка через цикл
  21. Работа с прокси в Python
  22. Объединение Python и Shell
  23. Работа с коллекциями Python
  24. Установка максимального количества цифр
  25. Функции range() в Python
  26. Настройка вывода NumPy
  27. Переопределение метода divmod
  28. Работа с defaultdictами в Python
  29. Управление User-Agent в Python
  30. Параллельные вычисления в Python
  31. Работа со словарями в Python
  32. Списки в Python
  33. Расчет времени выполнения программы
  34. Сравнение строк в Python
  35. Создание объекта timedelta
  36. Методы __repr__ и __str__ в Python
  37. Декораторы в Python
  38. Работа с кортежами в Python
  39. Управление доступом к модулю
  40. Тестирование модели в PyTorch
  41. Работа с итераторами через срезы
  42. UserString в Python
  43. Работа с контекстным менеджером Pool
  44. Импортирование в Python
  45. Цикл for в Python
  46. Функция reduce() из модуля functools

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