Sobes.tech
Junior — Middle
87

Cum se realizează schimbul de date între generator și coroutine în program?

Companiile au fost întrebate
Инновационный центр Безопасный транспорт

Răspuns de la AI

sobes.tech AI

Обмен данными между генератором и корутиной в Python осуществляется с помощью методов yield и send(). Генератор приостанавливает выполнение на выражении yield, возвращая значение вызывающему коду. При следующем вызове метода send(value) выполнение генератора возобновляется, а выражение yield возвращает переданное значение value.

Пример:

def coroutine():
    received = yield "Начало"
    print(f"Получено: {received}")
    received = yield "Продолжение"
    print(f"Получено снова: {received}")

co = coroutine()
print(next(co))          # Запуск до первого yield, вывод: Начало
print(co.send(10))       # Отправка 10, вывод: Продолжение
co.send(20)              # Отправка 20, вывод: Получено снова: 20

Таким образом, генератор и корутина могут обмениваться данными через yield и send(), позволяя двунаправленное взаимодействие.