Sobes.tech
Middle+

Ինչպե՞ս կարող է գեներատորը ստանալ արժեքը դուրսից send() միջոցով։ Գրեք գեներատորի օրինակ, որը ընդունում է 'stop' բառը և կանգ է առնում։

sobes.tech AI

Պատասխան 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().