Sobes.tech
Junior — Middle
84

Hoe wordt de gegevensuitwisseling tussen de generator en de coroutine in het programma uitgevoerd?

Bedrijven waar gevraagd werd
Инновационный центр Безопасный транспорт

Antwoord van 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(), позволяя двунаправленное взаимодействие.