On Tue, 11 Aug 2009 12:29:32 am Dj Gilcrease wrote: > I figure I would write up the PEP draft, I have never tried writing a > pep before, but i did read PEP 1 and tried to follow it's formating > guides. If there are no additions to the idea, then it seems there > just needs to be a consensus on the syntax before submitting it to > the peps list
Shouldn't there be consensus on whether or not this is a good idea first? [...] > Modivation Motivation. > Often when doing calculations or string recasting (to int, float, > etc) it is required to wrap the section in a simple try-except > where the exception just assigns a default value. It would be more > readable and consise if these type of try-excepts could be written > on a single line. Concise (note spelling) certainly, but I question that it would be more readable. Newlines are not a bad thing, but trying to squeeze too much into a single line is. When the `x if y else z` expression was first introduced, I was very excited because I thought it would be very useful. But I soon found that it actually wasn't that useful to me: it was rare that I wanted it, and when I did, it was usually more readable to use an `if` block instead. So I don't find this proposal the least bit compelling. It seems to me to be primarily useful for saving wear and tear on the Enter key. > Syntax Ideas: > Option 1: > x = float(string) except float('nan') if ValueError > op(float(string) except float('nan') if ValueError) Looks too confusingly like an if test. I find my eye drawn to the final clause, `if ValueError`, and expecting that to evaluate to true. -1 > Option 2: > x = float(string) except ValueError: float('nan') > op(float(string) except ValueError: float('nan')) [bike-shedding] At the risk of an extra keyword, I would prefer `unless` instead of `except`. [/bike-shedding] I find this the least worst of the alternatives. -0 > Option 3: > x = float(string) except ValueError else float('nan') > op(float(string) except ValueError else float('nan')) Also looks confusingly like an if test, but not as strongly as Option 1. -0.5 Should the PEP allow expressions like this? func(obj) except str(e) if ValueError as e # Option 1 func(obj) except ValueError as e: str(e) # Option 2 func(obj) except ValueError as e else str(e) # Option 3 Justify your choice please. -- Steven D'Aprano _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com