PEP 308: A PEP Writer's Experience - PRO
James J. Besemer
jb at cascade-sys.com
Mon Feb 10 15:26:17 EST 2003
Roy Smith wrote:
> I'm probably going to hate myself in the morning, but I'm forced to
> admit that, in some ways, the long-winded way (which I've been
> advocating) is inferior.
>
> I'm a fan of refactoring (but not a zealot, in the XP-ish "refactor
> mercilessly" sense). It's temping to want to factor the "result =" out
> of the above and end up with "result = ternary involving x>y, x, and y".
> There's both a cognitive advantage (you only have to read and understand
> it once) and a coding advantage (if you only type it once, there's no
> chance of introducing inconsistancy).
You hit the nail on the head.
As I've argued elsewhere in this thread (and previous ones) THESE are the
main reasons for PEP 308, not saving keystrokes, per se.
Ironically, they actually go to improved readability by greater specificity
of intent. Note the subtle bug below and how it cannot arise if rewritten to
use cond-expr:
if condition1:
if condition2
targetVar1 = result1
else:
targetVarl = result2
else:
targetVar1 = result3
Regards
--jb
--
James J. Besemer 503-280-0838 voice
2727 NE Skidmore St. 503-280-0375 fax
Portland, Oregon 97211-6557 mailto:jb at cascade-sys.com
http://cascade-sys.com
More information about the Python-list
mailing list