Guido van Rossum wrote:

>> (what about vars(), btw?)
> 
> Interesting question! Right now vars() and dir() don't seem to use the
> same set of keys; e.g.:
> 
>>>> class C: pass
> ...
>>>> c = C()
>>>> c.foo = 42
>>>> vars(c)
> {'foo': 42}
>>>> dir(c)
> ['__doc__', '__module__', 'foo']
>>>>
> 
> It makes some sense for vars(x) to return something like
> 
>   dict((name, getattr(x, name)) for name in dir(x) if hasattr(x, name))
> 
> and for the following equivalence to hold between vars() and dir() without 
> args:
> 
>   dir() == sorted(vars().keys())

+1. This is easy and straightforward to explain, better than
"With a module, class or class instance object as argument (or anything else 
that has a __dict__  attribute), returns a dictionary corresponding to the 
object's symbol table."

Georg

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to