[Info] PEP 308 accepted - new conditional expressions
Michael
ms at cerenity.org
Mon Oct 3 14:38:11 EDT 2005
Christophe wrote:
> 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.
I noted that. However it *does* slow people down which increases the chances
of misconception (which is why I'd be in favour of bracketing these
expressions).
Michael.
More information about the Python-list
mailing list