[Python-Dev] Replacing __slots__ with addmembers()

M.-A. Lemburg mal@lemburg.com
Tue, 13 Nov 2001 10:52:11 +0100


Tim Peters wrote:
> 
> [M.-A. Lemburg]
> > I'd suggest that Guido marks those features he considers stable
> > as such and clearly states which other features should still
> > be condsidered experimental and not for production use.
> >
> > I intend to make some of the mx-datatypes subclassable but would
> > want to have to support n different ways of implementing the details
> > (I'll already have to support two different ways: classic and
> > new style... wouldn't want to do classic, new style version 2.2,
> > new style version 2.3, etc.)
> 
> The clearest statement to date is probably here:
> 
>     http://aspn.activestate.com/ASPN/Mail/Message/827383
> 
> Note that it ends with:
> 
>     We should document this more clearly and in more detail.
> 
> And we should.

With "we" I presume you mean the Python Labs Team ;-) You seem to
have more insight into the workings behind this than anyone
else.
 
> The internal details are pretty stable now; *perhaps* they'll need to be
> rearranged to cater to things that can't be done at all now, but that's true
> of every part of the language (albeit especially true of large new
> features).

Good to know. Now at least I can start turning mxDateTime into
a new style class :-)
 
> __slots__ et alia are shallow spelling details, where "shallow" doesn't mean
> unimportant but that changing the spelling has scant effect on the
> internals -- note how Michael bragged about how short and unintrusive his
> __slot__-respelling patch was <0.9 wink>.  Adding new ways to spell things
> shouldn't have any effect on how you need to implement your extension types.
> Note that we've already gone thru the exercise of making all the basic
> builtin types subclassable, so have some confidence that the subclassing
> APIs are both usable and solid.  They've also been stable (e.g., I can't
> think of any change to them between the last alpha and current CVS).

True, but I'm also thinking about writing new code in Python
which uses these features and there I don't see the stability
of the API just yet (but would really like them to stabilize
*before* 2.2 moves out the door and even if this means waiting
until after Christmas ;-).

-- 
Marc-Andre Lemburg
CEO eGenix.com Software GmbH
______________________________________________________________________
Consulting & Company:                           http://www.egenix.com/
Python Software:                        http://www.lemburg.com/python/