On 12/01/14 18:45, Peter Ludemann wrote:
> If you're asking about whether pylint should complain about the OP's
> code, I think that it shouldn't -- in the semantics of for/else, return
> and break are similar and rewriting OP's code to suppress the warnings
> is not an improvement:
> 
>     def _areConstants(expressions):
>         for expression in expressions:
>             if not expression.isExpressionConstantRef():
>                 break
>             if expression.isMutable():
>                 break
>         else:
>             return True
>         return False

That's not an improvement but also not the obvious way to rewrite the
code to suppress the, IMHO legitimate, warning.  Instead of introducing
``break``\s for an unnecessary ``else`` clause one could also just
remove that unnecessary ``else``::

def _areConstants(expressions):
    for expression in expressions:
        if not expression.isExpressionConstantRef():
            return False
        if expression.isMutable():
            return False
    return True

Which improves the situation in a way, because now the fellow Python
coder doesn't wonder where the ``break`` should be or if the author
understood the semantics of ``else`` on loop constructs.

I would also avoid this question by using `all()` here.  :-)

Ciao,
        Marc 'BlackJack' Rintsch
-- 
“It was not a good idea to address any prayers to a Supreme Being.
 It would only attract his attention and might cause trouble.”
                                    -- Terry Pratchett, Small Gods

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
code-quality mailing list
code-quality@python.org
https://mail.python.org/mailman/listinfo/code-quality

Reply via email to