Проверяет понимание ключевого слова yield для создания генераторов и управления потоком выполнения в Python.
Ключевое слово yield в Python используется для создания функций-генераторов. В отличие от обычных функций, которые возвращают одно значение с помощью return и завершаются, генераторы могут возвращать последовательность значений по одному, приостанавливая своё выполнение между вызовами. Это реализует концепцию ленивых вычислений (lazy evaluation), когда данные генерируются по мере необходимости, а не все сразу.
Когда функция содержит yield, она становится генератором. При вызове она возвращает объект-итератор, который можно использовать в цикле for или с функцией next(). Каждый раз, когда встречается yield, значение передаётся вызывающему коду, а состояние функции (локальные переменные и точка выполнения) сохраняется. При следующем вызове next() выполнение продолжается с того же места.
def count_up_to(n):
i = 1
while i <= n:
yield i
i += 1
# Использование генератора
for num in count_up_to(5):
print(num) # Выведет: 1 2 3 4 5
# Ручной вызов
gen = count_up_to(3)
print(next(gen)) # 1
print(next(gen)) # 2
print(next(gen)) # 3
Вывод: yield — мощный инструмент для эффективной работы с последовательностями данных, особенно когда объём данных велик или неизвестен заранее. Используйте генераторы для экономии памяти и улучшения производительности в итеративных задачах.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию