[Python-Dev] Module properties for C modules

Guido van Rossum guido at python.org
Thu May 1 22:02:19 CEST 2008


On Thu, May 1, 2008 at 12:32 PM, Christian Heimes <lists at cheimes.de> wrote:
> Guido van Rossum schrieb:
>
> > But wouldn't this mean that those properties would no longer be
>  > available in the module's __dict__?
>
>  Correct. Module properties would behave exactly like instance
>  properties. They don't appear on the instance's __dict__ attribute, too.
>
>  By the way I was astonished that the vars() function dones't show
>  properties but dir() does list them.

"Astonished" sounds stronger than you probably meant it. :-)

>  >>> class Example(object):
>  ...     @property
>  ...     def x(self):
>  ...         return 42
>  ...
>  >>> example = Example()
>  >>> example.__dict__
>  {}
>  >>> vars(example)
>  {}
>  >>> dir(example)
>  ['__class__', '__delattr__', '__dict__', '__doc__', '__getattribute__',
>  '__hash__', '__init__', '__module__', '__new__', '__reduce__',
>  '__reduce_ex__', '__repr__', '__setattr__', '__str__', '__weakref__', 'x']

They are intentionally different though -- dir() tries to give all the
attributes, while vars() only accesses __dict__.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-Dev mailing list