[Python-Dev] vox populii illiterati

Andrew Koenig ark@research.att.com
09 Feb 2003 22:58:04 -0500


Samuele> From: "holger krekel" <pyth@devel.trillke.net>
>> 
>> if obj.method() if hasattr(obj, 'method') else False:
>> 

Samuele> don't worry the pro-camp seems converging toward:

Samuele> if if hasattr(obj,'method'): obj.method() else: False:

Samuele> or

Samuele> if (if hasattr(obj,'method'): obj.method() else: False):

I count myself in the pro-camp, and I would prefer

        if hasattr(obj,'method') and obj.method():

to any of the alternatives, for the obvious reason.  In fact, as a
pragmatic note, I wouldn't mind it if the compiler gave a warning
about

        if <cond>: True else: <expr>

or

        if <cond>: <expr> else: False

because they're equivalent to

        bool(cond) or <expr>

and

        bool(cond) and <expr>

respectively.


-- 
Andrew Koenig, ark@research.att.com, http://www.research.att.com/info/ark