Issue 7036: Doc/reference/datamodel: Slots description needs update (original) (raw)

Issue7036

Created on 2009-10-02 17:15 by Byron, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
docfix.diff Byron,2009-10-02 17:15 Fix for Doc/reference/datamodel.rst regarding the slots description
Messages (3)
msg93447 - (view) Author: Sebastian Thiel (Byron) Date: 2009-10-02 17:15
The section starting with: "If a class defines a slot also defined in a base class, the instance variable defined by the base class slot is inaccessible rendering the meaning of the program undefined. [...]" would need to be revisited as it claims that a check for this issue might be added in future. As far as I can tell, it has been added in Python 2.4 or earlier as I get a TypeError in that case. The attached diff is my attempt to fix this issue. Kind Regards, Sebastian
msg93451 - (view) Author: Sebastian Thiel (Byron) Date: 2009-10-02 17:57
Additional Information: "multiple bases have instance lay-out conflict" This happens only if I add __slots__ to the bases so that there is no dict. I can reproduce this easily by indirectly deriving a class from two bases that both define the same slot. It only happens if all classes define __slots__ so there is no dict. class ac( object ): __slots__ = "a" class bc( ac ): __slots__ = "b" class cc( ac ): __slots__ = "c" class cannotbecreated( bc,cc ): pass # raises an error. Actually I don't know whether this is intended or if it is related to the documentation section I pointed at.
msg94354 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2009-10-22 15:27
As far as I can tell, the text is still correct: >>> class a(object): __slots__ = 'a' >>> class b(a): __slots__ = 'a' works without raising TypeError. I've nevertheless enhanced the docs a bit in r75610.
History
Date User Action Args
2022-04-11 14:56:53 admin set github: 51285
2009-10-22 15:27:42 georg.brandl set status: open -> closedresolution: fixedmessages: +
2009-10-02 17:57:34 Byron set messages: +
2009-10-02 17:15:42 Byron create