python повысить исключение перед доходностью - PullRequest
1 голос
/ 03 марта 2020

Я пытаюсь создать функцию, которая возвращает значение. Прежде чем что-либо сделать, я хочу убедиться, что ввод функции действителен. Ниже код создает генератор после выполнения. Возникает исключение только после next . Есть ли элегантная структура функции, которая выдает исключение перед next ?

def foo(value):
    if validate(value):
        raise ValueError
    yield 1

1 Ответ

2 голосов
/ 03 марта 2020

вы не можете проверить value перед использованием next, в этом весь смысл использования гнейраторов , из документов :

Каждый выход временно приостанавливает обработку, запоминая состояние выполнения местоположения (включая локальные переменные и ожидающие операторы try). Когда генераторный итератор возобновляет работу, он начинает с того места, где он остановился (в отличие от функций, которые запускаются fre sh при каждом вызове).

, что вы можете сделать, это проверить значение перед использованием генератор

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...