Курс 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. PATCH-запрос с библиотекой requests
  2. Введение в PyTorch
  3. Создание итерируемых объектов
  4. Работа с множествами в Python
  5. Декораторы с @wraps
  6. Работа с Colorama
  7. Перевод эмодзи и эмотиконов.
  8. Управление экспортом элементов
  9. Подсказки при вводе данных в Python
  10. Генератор бросков кубиков
  11. Работа с буфером обмена на Python
  12. Работа с контекстными переменными
  13. Роль ключевого слова self
  14. Удаление символа из строки
  15. Применение функций в Python
  16. Копирование словарей и списков в Python
  17. Работа с файлами в Python
  18. Работа с кортежами в Python
  19. Поиск всех индексов подстроки
  20. Комментарии в Python
  21. Анонимные функции в Python
  22. Поиск наиболее частого элемента
  23. Magic Commands — улучшение работы с Python
  24. Оператор += для объединения строк
  25. Логирование с Logzero
  26. Использование метода lower()
  27. Работа с модулем bisect
  28. Переопределение метода len
  29. Python и Монти Пайтон
  30. Цепные операции в Python
  31. Объединение списков в Python.
  32. Декоратор Ajax required
  33. Работа с модулем cmath
  34. Очистка данных в Python
  35. Использование обратной косой черты в f-строках
  36. Округление чисел с помощью round
  37. Библиотека schedule: планировщик задач
  38. Фильтрация данных в Python.
  39. Python Ellipsis использование
  40. Работа с файлами в Python
  41. Списки в Python: основы
  42. Сортировка HTML по CSS-селектору
  43. Структура данных deque в Python
  44. Заказ карты Тинькофф Black
  45. Конкатенация строк с join() в Python
  46. Работа с многоуровневыми словарями в Python

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