"has" Operator

Quinn Dunkan quinn at yak.ugcs.caltech.edu
Mon Jul 9 00:47:23 CEST 2001


On Sun, 08 Jul 2001 12:43:13 GMT, Guido van Rossum <guido at python.org> wrote:
>Actually, Paul's proposal to write
>
>  x has y
>
>instead of
>
>  hasattr(x, 'y')
>
>has a nice Pythonic ring to it, and the fact that you have to use
>quotes with hasattr() has always bothered me.  Too bad I didn't think
>of this 10 years ago; right now, I'd say it's too little value for too
>much disturbance (a new keyword).

Actually, I think there's a nice symmetry to hasattr taking strings.
It is to objects what has_key is to dicts, though it's more important because
dicts are naturally keyed with strings while objects are naturally keyed with
identifiers.

Now, the spelling I don't quite like.  We should have either haskey and
hasattr, or has_key and has_attr.  I prefer the latter, but it's too late now
in any case.

'x has y' would also have a nice resemblance to 'x in y', where one checks if
y is in the object itself, and the other checks if y is in the container the
object represents.  I don't want the former functionality often enough to
think a keyword is worth it, though.



More information about the Python-list mailing list