On 27 Feb 2014, at 11:09, Chris Angelico <ros...@gmail.com> wrote: > On Thu, Feb 27, 2014 at 7:44 PM, Ronald Oussoren <ronaldousso...@mac.com> > wrote: >> What about (also mentioned in the PEP)? >> >> value = (expr except Exception try default) >> >> This seems to read nicely, although “try” is at a completely different >> position than it is in the equivalent try statement. >> >> I like the general idea, but like Brett I don’t like using a colon here at >> all. > > I see your "although" clause to be quite a strong objection. In the > statement form of an if, you have:
I’m not convinced that this is a strong objection. The order of keywords is different, but that doesn’t have to be problem. > > if cond: true_suite > else: false_suite > > In the expression form, you have: > > true_expr if cond else false_expr […] > > > Putting "try" followed by the default is confusing, because any > exception raised in the default-expr will bubble up. Stealing any > other keyword from the try/except block would make just as little > sense: > > expr except Exception finally default # "finally" implies something > that always happens > expr except Exception else default # "else" implies *no* exception > expr except Exception try default # "try" indicates the initial expr, > not the default I didn’t parse the expression this way at all, but quite naturally parsed is as “use expr, and try using default if expr raises Exception” and not as a RTL expression. > default except Exception try expr # breaks L->R evaluation order > > Left to right evaluation order is extremely important to me. I agree with that, RTL evaluation would be pretty odd in Python. > I don't > know about anyone else, but since I'm the one championing the PEP, > you're going to have to show me a *really* strong incentive to reword > it to advocate something like the last one :) This is stated in the > PEP: > > http://www.python.org/dev/peps/pep-0463/#alternative-proposals > > Using try and except leaves the notation "mentally ambiguous" as to > which of the two outer expressions is which. It doesn't make perfect > sense either way, and I expect a lot of people would be flicking back > to the docs constantly to make sure they had it right. Really? The evaluation order you mention in above didn’t make sense to me until I tried to make sense of it. Ronald _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com