[Info] PEP 308 accepted - new conditional expressions

Christophe chris.cavalaria at free.fr
Mon Oct 3 09:07:24 EDT 2005


Michael a écrit :
> Rocco Moretti wrote:
> 
> 
>>That is, what would happen with the following constructs:
>>
>>A if B else C if D else F
>>A if B if C else D else F
> 
> 
> The correct answer should be the person who wrote it would get told off
> for writing code that a person reading would have no idea what the code
> was doing (without understanding the precedence).
> 
> Whilst it's good to have clear understandable, well defined rules for
> these things, that's no excuse for having unreadable code that other
> people can't read and understand without having to remember obscure
> rules.
> 
> Personally, I'd hope that any code-linting tools would flag such expressions
> as potentially bad because they're not clear. (Whereas bracketed expressions
> instantly help here).

Actually, you don't need to know operator precedence here because the 
notation isn't ambiguous in those 2 examples. Of course, it takes some 
time to understand the thing but it has more to do with the excessive 
amount of "logic" in one line than with the syntax.



More information about the Python-list mailing list