[code-quality] pylint: Else clause on a loop without break statement

Ian Cordasco graffatcolmingov at gmail.com
Sun Jan 12 16:12:17 CET 2014


I don't see any mesage from pylint in your email, could you post it again?

Regardless, I think what you're disagreeing with is the language
specification. The documentation specifies that the `else` is only
triggered on breaks:
http://docs.python.org/2/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops

On Sun, Jan 12, 2014 at 8:57 AM, Kay Hayen <kay.hayen at gmail.com> wrote:
>
> Hello,
>
> often I write code like this:
>
> def _areConstants(expressions):
>     for expression in expressions:
>         if not expression.isExpressionConstantRef():
>             return False
>
>         if expression.isMutable():
>             return False
>     else:
>         return True
>
> That is to search in an iterable, and return based on finding something, or
> returning in the alternative, I specifically prefer the "else:" branch over
> merely putting it after the "for" loop.
>
> This triggers the above message, which I consider flawed, because as soon as
> there is a "raise", or "return", that should be good enough as well.
> Basically any aborting statement, not only break.
>
> I wanted to hear your opinion on this, pylint bug, or only in my mind.
>
> Yours,
> Kay
> _______________________________________________
> code-quality mailing list
> code-quality at python.org
> https://mail.python.org/mailman/listinfo/code-quality


More information about the code-quality mailing list