Cleaning up conditionals

Deborah Swanson python at deborahswanson.net
Fri Dec 30 19:54:29 EST 2016


> On 31/12/16 00:26, Deborah Swanson wrote:
> > As Mr. Bieber points out, what I had above greatly benefits 
> from the 
> > use of conjunctions. It now reads:
> >
> > if not len(l1[st]) and len(l2[st]):
> 
> IMHO, "if not len(l)" is a _terrible_ way of spelling "if 
> len(l) == 0" 
> (mentally, I have to read that as "if length of 'l' is not 
> not equal to 
> 0" - and a double negative won't never cause problems ( ;) )).
> 
> Also, in that particular expression, having to know off the 
> top of their 
> head the precedence of 'not' and 'and' will cause at least some 
> percentage of your maintenance audience in the future to get it wrong.
> 
> What's wrong with:
> 
> if len(l1[st]) == 0 and len(l2[st]) != 0:
>    ...
> 
> ?

Absolutely nothing wrong, and you're right that it's more readable. I
just think it's cool that Python will do the right thing with not len(a)
and len(a).
 
> There is _no way_ someone could read that and get the wrong idea.
> 
> E.

Quite true.



More information about the Python-list mailing list