Sobes.tech
Назад к вопросам
Junior — Middle
50

Какую роль выполняет ключевое слово yield в Python, помимо реализации генераторов?

Ответ от нейросети

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 используется для приёма данных извне и обработки их по мере поступления.