Junior — Middle
85
Πώς πραγματοποιείται η ανταλλαγή δεδομένων μεταξύ του γεννήτορα και της coroutine στο πρόγραμμα;
Εταιρείες όπου ρωτήθηκαν
Инновационный центр Безопасный транспорт
Απάντηση από 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(), позволяя двунаправленное взаимодействие.