Как включить шаблон лезвия, только если он существует?

Как насчет чего-то типа:

if all([form1.is_valid(), form2.is_valid()]):
   ...

В общем случае можно было бы использовать понимание списка, чтобы результаты вычислялись спереди (в отличие от выражения генератора, которое обычно используется в этом контекст). например:

if all([ form.is_valid() for form in (form1,form2) ])  

Это будет хорошо масштабироваться и для произвольного количества условий ... Единственный улов в том, что все они должны быть связаны «and», в отличие от if foo and bar or baz: ....

(для короткого замыкания or вы можете использовать any вместо all).

13
задан Cedric 19 August 2015 в 17:48
поделиться