[Python-Dev] PEP 463: Exception-catching expressions
ja.py at farowl.co.uk
Sat Feb 22 21:28:01 CET 2014
On 22/02/2014 16:36, Brett Cannon wrote:
> On Sat, Feb 22, 2014 at 4:13 AM, Antoine Pitrou <solipsis at pitrou.net
> <mailto:solipsis at pitrou.net>> wrote:
> On Fri, 21 Feb 2014 09:37:29 -0800
> Guido van Rossum <guido at python.org <mailto:guido at python.org>> wrote:
> > I'm put off by the ':' syntax myself (it looks to me as if
> someone forgot a
> > newline somewhere) but 'then' feels even weirder (it's been
> hard-coded in
> > my brain as meaning the first branch of an 'if').
> Would 'else' work rather than 'then'?
> thing = stuff['key'] except KeyError else None
> That reads to me like the exception was silenced and only if there is
> no exception the None is returned, just like an 'else' clause on a
> 'try' statement.
> I personally don't mind the 'then' as my brain has been hard-coded to
> mean "the first branch of a statement" so it's looser than being
> explicitly associated with 'if' but with any multi-clause statement.
I read *except* as 'except if', and *:* as 'then' (often), so the main
proposal reads naturally to me. I'm surprised to find others don't
also, as that's the (only?) pronunciation that makes the familiar
if-else and try-except constructs approximate English.
Isn't adding a new keyword (*then*) likely to be a big deal? There is
the odd example of its use as an identifier, just in our test code:
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-Dev