[Python-Dev] slots, properties, descriptors, and pydoc

John Belmonte john at neggie.net
Sun Apr 18 22:29:08 EDT 2004


Guido van Rossum wrote:
> Anything can be done using metaclasses.  __slots__ is not special
> once the class exists -- it is a set of instructions for the default
> metaclass to create a specific set of descriptors (and associated
> storage).  Another metaclass could use a different convention
> (although it may have to set __slots__ to let the base metaclass
> create the associated storage slots).

My original proposal was to use __slots__ dict values for docstrings in 
the default metaclass.  You said you'd rather not do that because 
different metaclasses may want to use the dict value for different 
purposes.  But from what you've explained, metaclasses are free to 
interpret the value of __slots__ in any way they choose.  Metaclasses 
built on top of the default metaclass could translate their __slots__ 
value to the __slots__ I proposed.

Are optional tuples any better?  This wouldn't preclude use of dict 
values for something else.

class Foo(object):
     __slots__ = [
         'slot1',
         ('slot2', 'description'),
         ('slot3', """description
             ...continued"""),
     ]


-John


-- 
http:// if  ile.org/



More information about the Python-Dev mailing list