Наиболее естественным способом, вероятно, будет оценка выражений в предыдущих строках.
a = foo()
b = bar()
if a and b:
...
, поскольку решения типа all([5 < x, x < y])
скрывают, что побочные эффекты важны, а решения, использующие побитовое и (&
), кажутся тонкими и неправильными - оба из них требуют комментария в вашем коде, чтобы было очевидно, что вы заставляете оценку заставит людей, читающих ваш код, думать О чем он думал ??? . Размещать важные вычисления в своих собственных строках имеет больше смысла, чем скрывать их в тонком, на первый взгляд, некрасивом коде.
Хотя мое решение не предотвращает NameError
, если b
не существует (т. Е. У вас есть опечатка) и a
неверно, это то, что вы должны быть в состоянии выяснить, прочитав свой код и используя средство поиска ошибок, если вы выберете.