Reorder __slots__ fine print and add a clarification.

This commit is contained in:
Georg Brandl 2009-10-22 15:27:24 +00:00
parent c5026f8a7b
commit 030d65811f
1 changed files with 4 additions and 4 deletions

View File

@ -1675,15 +1675,15 @@ Notes on using *__slots__*
*__slots__*; otherwise, the class attribute would overwrite the descriptor
assignment.
* The action of a *__slots__* declaration is limited to the class where it is
defined. As a result, subclasses will have a *__dict__* unless they also define
*__slots__* (which must only contain names of any *additional* slots).
* If a class defines a slot also defined in a base class, the instance variable
defined by the base class slot is inaccessible (except by retrieving its
descriptor directly from the base class). This renders the meaning of the
program undefined. In the future, a check may be added to prevent this.
* The action of a *__slots__* declaration is limited to the class where it is
defined. As a result, subclasses will have a *__dict__* unless they also define
*__slots__*.
* Nonempty *__slots__* does not work for classes derived from "variable-length"
built-in types such as :class:`long`, :class:`str` and :class:`tuple`.