On 22/02/2014 21:26, Tim Delaney wrote:
On 23 February 2014 02:29, Nick Coghlan <ncogh...@gmail.com
<mailto:ncogh...@gmail.com>> wrote:
On 22 Feb 2014 22:15, "Stephen J. Turnbull" <step...@xemacs.org
<mailto:step...@xemacs.org>> wrote:
> Antoine Pitrou writes:
> > Chris Angelico <ros...@gmail.com <mailto:ros...@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.
This also works:
hasattr(x,"y") <-> (lambda v: True)(x.y) except AttributeError: False
Which is less obscure is a matter of judgement.
_______________________________________________
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