[Tutor] atr in dir Vs. hasattr
Steven D'Aprano
steve at pearwood.info
Wed Mar 16 14:12:18 CET 2011
Tim Johnson wrote:
> What is the difference between using
> hasattr(object, name)
> and
> name in dir(object)
> ?
Did you read the Fine Manual?
http://docs.python.org/library/functions.html#dir
"The default dir() mechanism behaves differently with different types of
objects, as it attempts to produce the most relevant, rather than
complete, information: ...
Note: Because dir() is supplied primarily as a convenience for use at an
interactive prompt, it tries to supply an interesting set of names more
than it tries to supply a rigorously or consistently defined set of
names, and its detailed behavior may change across releases."
And here's an example:
>>> class C(object):
... pass
...
>>> hasattr(C, '__eq__')
True
>>> '__eq__' in dir(C)
False
--
Steven
More information about the Tutor
mailing list