[Python-Dev] PEP 463: Exception-catching expressions

Tim Delaney timothy.c.delaney at gmail.com
Sat Feb 22 22:26:32 CET 2014


On 23 February 2014 02:29, Nick Coghlan <ncoghlan at gmail.com> wrote:

> On 22 Feb 2014 22:15, "Stephen J. Turnbull" <stephen at xemacs.org> wrote:
> > Antoine Pitrou writes:
> >  > Chris Angelico <rosuav at gmail.com> wrote:
> >  > > hasattr(x,"y") <-> (x.y or True except AttributeError: False)
> >  > But it's not the same. hasattr() returns a boolean, not an arbitrary
> >  > value.
> > I think he meant
> >     hasattr(x,"y") <-> (x.y and True except AttributeError: False)
>
> With PEP 463, the explicit equivalent of hasattr() would be something like
> :
>
> hasattr(x,"y") <-> (bool(x.y) or True except AttributeError: False)
>
That would work, but I think I'd prefer:

hasattr(x,"y") <-> bool(x.y or True except AttributeError: False)

Makes it clearer IMO that the entire expression will always return a
boolean.

If exception expressions already existed in the language, I would think
there would be a strong argument for a library function hasattr(), but
probably not a builtin.

Tim Delaney
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20140223/97c613de/attachment.html>


More information about the Python-Dev mailing list