Middle+
Kako generator može dobiti vrednost spolja putem send()? Napišite primer generatora koji prihvata reč 'stop' i zaustavlja se.
sobes.tech АИ
Одговор од АИ
Генератор в Python может получать значения извне с помощью метода send(). При вызове send(value) генератор возобновляет выполнение и выражение yield возвращает переданное значение value. Это позволяет динамически влиять на поведение генератора.
Пример генератора, который принимает слово 'stop' и останавливается:
def stop_generator():
while True:
word = yield
if word == 'stop':
print('Остановка генератора')
break
else:
print(f'Получено слово: {word}')
# Использование
g = stop_generator()
next(g) # Запуск генератора до первого yield
g.send('hello') # Выведет: Получено слово: hello
g.send('world') # Выведет: Получено слово: world
g.send('stop') # Выведет: Остановка генератора
Обратите внимание, что перед первым вызовом send() нужно запустить генератор до первого yield с помощью next().