[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