[Python-Dev] PEP 463: Exception-catching expressions
Jeff Allen
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:
http://hg.python.org/cpython/file/0695e465affe/Lib/test/test_epoll.py#l168
http://hg.python.org/cpython/file/0695e465affe/Lib/test/test_xmlrpc.py#l310
Jeff Allen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20140222/efc3fc8c/attachment.html>
More information about the Python-Dev
mailing list