Работа с yield в Python: полезные советы и примеры
В Python, ключевое слово yield используется в генераторах и функциях-генераторах для создания итераторов. Оно позволяет программисту сохранять состояние функции и продолжать выполнение с последней остановки вместо начала снова.
Пример использования yield в функции-генераторе для генерации чисел Фибоначчи:
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
Функция fibonacci() сохраняет свое состояние после каждого вызова, и продолжает выполнение с последней остановки при следующем вызове. Вызов функции возвращает генератор – объект, который можно использовать для итерации по результатам функции. Пример:
fib = fibonacci()
print(next(fib)) # 0
print(next(fib)) # 1
print(next(fib)) # 1
print(next(fib)) # 2
print(next(fib)) # 3
Количество вызовов `next(fib)` не ограничено – функция будет продолжать генерацию чисел Фибоначчи до бесконечности.
В общем, ключевое слово yield – мощный инструмент для работы с итераторами и создания ленивых вычислений в Python. Оно позволяет создавать эффективные итерируемые объекты, которые не обязательно должны содержать полный список элементов.