Sobes.tech
Back to questions
Middle+
8

Как генератор может получить значение извне через send()? Напишите пример генератора, который принимает слово 'stop' и останавливается.

Companies where asked
YadroYadro

Answer from AI

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().