Back to questions
Т-Банк
Junior — Middle
61
Каким образом можно получить значение, отправленное в генератор Python с помощью метода send()
Companies where asked
Answer from AI
sobes.tech AI
В Python значение, отправленное в генератор с помощью метода send(), становится результатом выражения yield внутри генератора. То есть, когда генератор приостанавливается на yield, вызов send(value) возобновляет выполнение генератора, и выражение yield возвращает переданное значение value.
Пример:
def gen():
received = yield "start"
print(f"Получено: {received}")
received2 = yield "middle"
print(f"Получено второе: {received2}")
g = gen()
print(next(g)) # Запускает генератор, выводит 'start'
print(g.send(10)) # Отправляет 10, выводит 'middle' и печатает 'Получено: 10'
print(g.send(20)) # Отправляет 20, генератор печатает 'Получено второе: 20'
Таким образом, значение, переданное в send(), становится результатом текущего выражения yield внутри генератора.