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