Sobes.tech
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 внутри генератора.