Middle+
Comment un générateur peut-il obtenir une valeur de l'extérieur via send() ? Écrivez un exemple de générateur qui accepte le mot 'stop' et s'arrête.
sobes.tech IA
Réponse de l'IA
Генератор в 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().