Coding style and else statements

Tal Einat tal.no.no.spam at gmail.com
Wed Aug 30 03:47:55 EDT 2006


Sybren Stuvel wrote:
> Tal Einat enlightened us with:
> > Actually, the common work-around for this is:
> >
> > (thing and [thing+1] or [-1])[0]
> >
> > This works since non-empty lists are always considered true in
> > conditional context. This is more generic, and IMO more readable.
>
> I think it's not readable at all. It's confusing - you create a
> singleton list, only to extract the first element from it and discard
> the list again. I'd rather read a proper if-statement.
>
I agree that an "if" statement is by far more readble; I was referring
only to the dicussion of the "and-or trick", not the entire issue.

I meant to say that:

(thing and [thing+1] or [-1])[0]

is more readable (IMO) than:

thing != -1 and (thing and thing+1 or -1) or 0

- Tal




More information about the Python-list mailing list