Как получить значение в Python генераторе, посылаемое через метод send()

Python Middle Т-Банк
Как получить значение в Python генераторе, посылаемое через метод send()
Ответы
Генераторы в Python могут не только выдавать значения через `yield`, но и получать их через метод `send()`. Для этого нужно использовать `yield` как выражение, присваивая его результат переменной. Пример: ``` def my_generator(): while True: received = yield # Получаем значение через send() print(f"Received: {received}") gen = my_generator() next(gen) # Инициализация генератора (до первого yield) gen.send("Hello") # Отправляем значение в генератор ``` **Нюансы:** - Перед `send()` обязательно вызовите `next()` или `send(None)`, чтобы генератор дошёл до первого `yield`. - Если генератор завершился, `send()` вызовет `StopIteration`. - `send()` также возвращает следующее значение генератора (если есть `yield` с возвратом). Пример с возвратом значения: ``` def echo(): while True: val = yield "Echo: " print(val) g = echo() next(g) print(g.send("Hi")) # Выведет "Hi" и вернёт "Echo: " ```