Назад к вопросам
Yadro
Middle+
7
Как генератор может получить значение извне через send()? Напишите пример генератора, который принимает слово 'stop' и останавливается.
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Генератор в 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().