[Python-Dev] Type/class

Paul Prescod paulp@ActiveState.com
Thu, 10 May 2001 16:22:16 -0700


Jeremy Hylton wrote:
> 
> >>>>> "PP" == Paul Prescod <paulp@ActiveState.com> writes:
> 
>   PP> I would like to argue that "plain old C types" should act as if
>   PP> they have __dict__s for consistency with other types. It is
>   PP> sometimes useful to be able to annotate objects by adding
>   PP> attributes to them. But this only works with class instance
>   PP> objects, not instances of types.
> 
> Every type should have an __dict__ of type dict?  Then every dict
> must have an __dict__, including the __dict__ of __dict__?

What's wrong with that? Every object has a type, even type objects, and
type types. It only becomes a problem if you try to recursively walk all
the dictionaries in the system adding information to them. Otherwise
they have null pointers that "act as if" they were empty dictionaries.

> Once every object has an __dict__, every object will be mutable.  Then
> no object will be usable as a dict key and we can get rid of dict's
> entirely.

According to that argument, instances cannot be dictionary keys. That is
simply not true. Objects do not implement their hash functions in terms
of ALL of their attributes!

-- 
Take a recipe. Leave a recipe.  
Python Cookbook!  http://www.ActiveState.com/pythoncookbook