Middle+
Jak může generátor získat hodnotu zvenčí přes send()? Napište příklad generátoru, který přijímá slovo 'stop' a zastaví se.
sobes.tech AI
Odpověď od 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().