<div dir="rtl"><div style="direction:ltr"><br></div><div style="direction:ltr"><br></div><div style="direction:ltr"><br></div><div style="direction:ltr">2014-02-20 15:31 GMT+02:00 Chris Angelico <<a href="mailto:rosuav@gmail.com">rosuav@gmail.com</a>>:</div>
<div style="direction:ltr">></div><div style="direction:ltr">> On Fri, Feb 21, 2014 at 12:23 AM, Ron Adam <<a href="mailto:ron3200@gmail.com">ron3200@gmail.com</a>> wrote:</div><div style="direction:ltr">> > The expression doesn't need to be just too terms, it could be something more</div>
<div style="direction:ltr">> > complex.</div><div style="direction:ltr">> ></div><div style="direction:ltr">> >       (except KeyError: d1[key] or d2[key] or d3[key] or None)</div><div style="direction:ltr">
> ></div><div style="direction:ltr">> ></div><div style="direction:ltr">> > Would give the first dictionary lookup that doesn't raise KeyError or None.</div><div style="direction:ltr">> ></div>
<div style="direction:ltr">> > Because the exception paths and data paths don't overlap, they could be</div><div style="direction:ltr">> > dictionaries containing exception instances and it would still work.</div>
<div style="direction:ltr">></div><div style="direction:ltr">> Okay. I think I follow. The way to spell that in the current proposal is:</div><div style="direction:ltr">></div><div style="direction:ltr">> d1[key] except KeyError: (d2[key] except KeyError: (d3[key] except</div>
<div style="direction:ltr">> KeyError: None))</div><div style="direction:ltr">></div><div style="direction:ltr">> which is rather more verbose. On the other hand, the syntax you have</div><div style="direction:ltr">
> requires magic around the 'or' keyword.</div><div style="direction:ltr">></div><div style dir="ltr">Perhaps it should be a colon-seperated list:</div><div style dir="ltr"><br></div><div style dir="ltr">    (except KeyError: d1[key] : d2[key] : d3[key] : None)</div>
<div style dir="ltr"><br></div><div style dir="ltr">Or maybe a semicolon.</div><div style dir="ltr"><br></div><div style dir="ltr">    (except KeyError: d1[key] ; d2[key] ; d3[key] ; None)<br></div><div style dir="ltr">---</div>
<div style dir="ltr">Elazar</div></div>