Ian, it's the opposite - 'else' is only triggered if *no* break statement is encountered.


On 12 January 2014 16:12, Ian Cordasco <graffatcolmingov@gmail.com> wrote:
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@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@python.org
> https://mail.python.org/mailman/listinfo/code-quality
_______________________________________________
code-quality mailing list
code-quality@python.org
https://mail.python.org/mailman/listinfo/code-quality