Anybody working on a PEP308 summary?

Giles Brown giles_brown at hotmail.com
Sun Feb 9 06:29:12 EST 2003


Isn't part of the purpose of a PEP to discuss the motivation for the
change.
It is my opinion that this PEP needs a better section on the
motivation. A
clear and objective list of the current means of achieving the same
effect.
I.e.

Technique number 1:

x = condition and expr1 or expr2

Which as we all now know (I guess?) fails in case of bool(expr1) being
False.

Technique number 2:

if condition:
    x = expr1
else:
    x = expr2

Which is three extra lines and suffers from the possibility of
introducing
a bug through mis-typing x.  

I believe the points in this post (so far) are objective arguments for
the PEP.  I also believe that the PEP should describe these
motivations.  Any other
relatively objective motifications should also be included.

Warning: from here on in is my opinion (so I'm happy for you to ignore
it :-)

Technique number 1 is a hack.  I'm not saying I don't use it, but it
is a hack.
Technique number 2 is clearly not. I'm not swayed at all by the saving
three lines argument.  I do have some sympathy for the bug through
mis-typing x argument,
but this is outweight by my lack of sympathy for what looks like a VI
caps lock
accident.  The damage to readability of the proposed syntax does not
(IMO)
outweigh the risk of misnaming the variable.  
Note I am also of the opinion that list comprehensions look like a VI
caps lock
accident, but as Aahz mention are a case of practicality winning out. 
They
also have the advantage of looking like an expression because they are
always
surrounded by [].




More information about the Python-list mailing list