Back to questions
Junior — Middle
49
Какую роль выполняет ключевое слово yield в Python, помимо реализации генераторов?
Answer from AI
sobes.tech AI
Ключевое слово yield в Python используется не только для создания генераторов, но и для реализации корутин и сопрограмм. Оно позволяет функции приостанавливать своё выполнение и возвращать промежуточное значение, сохраняя своё состояние, чтобы позже продолжить работу с того же места.
Кроме генераторов, yield применяется для организации ленивых вычислений и обработки потоков данных, а также в асинхронном программировании (например, в старом стиле корутин до появления async/await).
Пример использования yield для простой корутины:
def grep(pattern):
print(f"Looking for {pattern}")
while True:
line = (yield)
if pattern in line:
print(line)
search = grep("python")
next(search) # Запускаем корутину
search.send("hello world")
search.send("python is great") # Выведет: python is great
Здесь yield используется для приёма данных извне и обработки их по мере поступления.