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

Fred L. Drake, Jr. fdrake at acm.org
Sun Apr 18 11:55:30 EDT 2004


On Sunday 18 April 2004 11:35 am, John Belmonte wrote:
 > I'm concerned about something though.  Doesn't this implementation
 > impose an overhead on access of slots with doc strings, or can a C
 > implementation be made just as efficient as normal slots?

This implementation does, but a C implementation in the core could avoid that 
easily enough.  It may even be that this could be avoided using a Python 
implementation by generating an __slots__ that isn't munged so heavily and 
then playing metaclass tricks to cause the docstrings to be inserted directly 
on the descriptors generated by the current __slots__ machinery.

I wasn't too worried about that for the example code, but you're certainly 
free to construct something that suits you.  I think it would be more 
interesting to create slot-based properties without the renaming currently 
needed, but I'm not sure how to do that off-hand.  If the slot property type 
were available for subclassing it would be pretty easy, I'd hope.

 > I'm also wondering about Guido's comment.  Even if the __slots__ handler
 > were extended to handle docstrings directly via dict values, wouldn't
 > metaclasses still be free to intercept the dict for other uses?

Metaclasses can do what they want to affect the new type.  That's what they're 
for.


  -Fred

-- 
Fred L. Drake, Jr.  <fdrake at acm.org>
PythonLabs at Zope Corporation




More information about the Python-Dev mailing list