Оценка короткого замыкания, например, «и» в Python, при сохранении результатов проверок

У меня есть несколько дорогих функций, которые возвращают результаты. Я хочу вернуть кортеж результатов всех проверок, если все проверки пройдут успешно. Тем не менее, если одна проверка не удалась, я не хочу вызывать более поздние проверки, такие как короткое замыканиеand, Я мог бы гнездитьсяif заявления, но это выйдет из-под контроля, если будет много проверок. Как я могу получить поведение короткого замыканияand сохраняя результаты для последующего использования?

def check_a():
    # do something and return the result,
    # for simplicity, just make it "A"
    return "A"

def check_b():
    # do something and return the result,
    # for simplicity, just make it "B"
    return "B"

...

Это не короткое замыкание:

a = check_a()
b = check_b()
c = check_c()

if a and b and c:
    return a, b, c

Это грязно, если есть много проверок:

if a:
   b = check_b()

   if b:
      c = check_c()

      if c:
          return a, b, c

Есть ли более короткий способ сделать это?

Ответы на вопрос(13)

Ваш ответ на вопрос