Курс 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"
- Модуль os: работа с файлами и папками
- Вывод сложных структур данных с помощью pprint
- JMESPath в Python
- Хэш-функции в Python
- Работа с URL-адресами в Python
- Объединение списков в строку
- Транспонирование матрицы в Python
- Проверка подстроки в строке
- Расширение информации об ошибке в Python
- UserList в Python: Описание и примеры использования
- Работа с контекст-менеджером «with»
- Работа с SQLite в Python
- Профилирование кода на Python
- Методы shutil для работы с файлами
- Округление чисел с помощью round
- Функция format() в Python
- Моржовый оператор в Python 3.8
- Перевод эмодзи и эмотиконов.
- Установка библиотек в Python
- Регистрация на TenChat
- Поиск частых элементов в списке
- Ввод нескольких значений
- Очистка данных в Python
- Создание Radio кнопок в tkinter
- Транспонирование 2D-массива с помощью zip
- Прокачанный трейсинг ошибок
- Метод remove() для удаления элемента из списка
- Метод is_absolute() для PurePath
- Обмен значений переменных в Python
- Атрибуты класса и экземпляра
- Счетчик ссылок в Python
- Освоение Python
- Измерение времени выполнения кода
- Поиск наиболее частого элемента
- List Comprehension Tutorial
- Генерация UUID в Python
- Поиск простых чисел
- Профилирование с Pandas
- Рекурсия для обращения строки
- Метод __complex__ в Python
- Применение функции map() в Python
- Преобразование в float
- Работа с CSV в Python
- Генераторы по генератору















