On Nov 25, 7:43 am, Paul Rubin <no.em...@nospam.invalid> wrote: > Gerald Britton <gerald.brit...@gmail.com> writes: > > if v: > > f() > > > I might, however, think more in a functional-programming direction. > > Then I might write: > > > v and f() > > Python has conditional expressions. The above would be: > > f() if v else None > > using "and" is bug-prone.
Using 'and' is indeed bug-prone when used in combination with 'or' to achieve a ternary conditional op, as was done the pre PEP308 days, eg "val = cond and a or b" because of the possibility that 'a' was itself not true, (thus requiring the ugly 'val = (cond and [a] or [b])[0]'). But no such bug could occur with this particular idiom. What could possibly go wrong here? :) That being said, I agree with previous posters that "if cond : fn()" wins in terms of readability. -- http://mail.python.org/mailman/listinfo/python-list