Курс 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"
- Ограничение ресурсов в Python
- Цепные операции в Python
- Сортировка в Python
- Отображение HTML кода в Python
- Работа с CSV файлами
- Управление контекстом с помощью декоратора contextmanager
- Функция zip() — объединение последовательностей
- Запрос DELETE с библиотекой requests
- Вызов функций по строке в Python.
- Генерация QR-кодов с Python
- Метод __int__ в Python
- Просмотр атрибутов и методов класса
- Сортировка с помощью key
- Именованные срезы в Python
- Атрибуты объекта в Python
- Проверка дублей в списке.
- Операции с матрицами в Python
- Разбиение строки в Python
- Отладчик pdb: начало работы
- Принципы LSP и ISP в Python
- Метод get() в Python
- Обновление множества в Python
- Работа с deque в Python
- Секреты Python
- Экспорт данных в файл.
- Обмен значений переменных в Python
- Управление пакетами с pip
- Установка Home Assistant
- Использование модуля __future__
- Форматирование объектов с модулем pprint
- Проверка наличия элемента в списке
- Python OrderedDict и fromkeys() — работа с словарями
- Показ всплывающих окон Tkinter
- Работа с модулем bisect
- Операции с комплексными числами
- Реверс строки и списка в Python.
- Удаление файлов с shutil.os.remove()
- Форматирование строк в Python
- Метод rmatmul для пользовательских матриц
- Создание функций с произвольным количеством аргументов
- Итерации в Python
- Порядок и длина множеств в Python
- Python Метод sleep() времени
- Использование super() в Python
- Нахождение максимального значения и его индекса в списке















