Курс Python → Функции-генераторы в Python
Функции-генераторы в Python представляют собой специальный тип функций, которые могут возвращать результаты несколько раз в процессе выполнения. Они отличаются от обычных функций тем, что в них присутствует оператор yield, который позволяет сохранить текущее состояние выполнения функции и вернуть значение, не завершая ее полностью.
Оператор yield позволяет функции «замораживаться» на определенном этапе выполнения и возвращать значение, после чего продолжать выполнение с того же места. Это позволяет экономить ресурсы памяти и времени, так как функция не хранит все результаты в памяти сразу, а возвращает их по мере необходимости.
Для создания функции-генератора необходимо использовать ключевое слово yield внутри тела функции. Когда функция вызывается, она возвращает объект-генератор, который можно использовать для получения значений, возвращаемых оператором yield. Когда все значения были извлечены, генератор исчерпывается и выдает исключение StopIteration.
def example_generator():
yield 1
yield 2
yield 3
gen = example_generator()
print(next(gen)) # Вывод: 1
print(next(gen)) # Вывод: 2
print(next(gen)) # Вывод: 3
В данном примере создается функция-генератор example_generator, которая последовательно возвращает числа 1, 2 и 3 при каждом вызове оператора yield. После каждого вызова функции next(gen) получаем следующее значение из генератора, пока не исчерпаем все значения.
Другие уроки курса "Python"
- Методы __repr__ и __str__ в Python
- Капитализация строк
- Списковое включение в Python
- Создание таблиц в Python с PrettyTable
- Работа с словарями в Python
- Атрибуты массивов в Numpy
- Функция findall() для поиска вхождений строки
- Роль запятой в Python
- Удаление дубликатов из списка
- Проверка подстроки в строке
- Поиск простых чисел
- Ускорение выполнения кода в Python
- Работа с файлами в Python
- Протокол управления контекстом
- Нахождение пересечения множеств
- Функции в Python: создание и вызов
- Генераторы по генератору
- Оператор морж в Python 3.8
- Генерация UUID в Python
- Генерация случайных чисел Python
- Метод join() для объединения элементов
- Python: цикл for и оператор присваивания
- Метод __getitem__ в Python
- Создание namedtuple из словаря
- Проверка условий в Python
- Преобразование PowerPoint в PDF.
- Копирование словарей и списков в Python
- Обновление множества в Python
- Структура данных deque в Python
- Анонимные функции Lambda
- Работа с исключениями в Python
- Сравнение строк в Python
- Итерация по копии коллекции
- Оператор == в Python
- Многострочные комментарии в Python
- Мониторинг работы программы Py-spy
- Оформление кода на Python
- Модуль itertools: эффективная работа с итераторами
- Тестирование модели в PyTorch
- Enum в Python: создание и использование перечислений
- Счетчик ссылок в Python
- Список и кортеж в Python
- Применение функции map() в Python
- Создание словаря в Python
- Работа с модулем glob в Python
- capitalize() — изменение регистра первого символа строки
- Возвращение нескольких значений















