For review: PEP 308 - If-then-else expression

Paul Moore gustav at morpheus.demon.co.uk
Mon Feb 10 14:58:26 EST 2003


Erik Max Francis <max at alcyone.com> writes:

> Paul Rubin wrote:
>
>> "Samuele Pedroni" <pedronis at bluewin.ch> writes:
>>
>> > I still prefer
>> >
>> > log.info(ok and "success!" or "failure.")
>> >
>> > over
>> >
>> > log.info(if ok: "success!" else: "failure")
>> 
>> OK, at that point it just get down to a matter of subjective
>> preference.  I personally find the second version far more explicit
>> and understandable.
>
> I think this is a lot more than just preference.  To those not familiar
> with the idiom, `C and x or y' is downright obtuse.  He may prefer it
> because it is a few characters shorter (and only a _few_ at that), but
> it is only clear if you already know the idiom.  Furthermore, as has
> been said over and over again, it's _broken (if x is false).

In this instance, x is *not* false. It is "success!", which evaluates
as true. As has been pointed out (in various contexts) over and over
again.

Paul.
-- 
This signature intentionally left blank




More information about the Python-list mailing list