From c2d6fa17f1c33f42e4c390a2a304bb9b3a5e1c7e Mon Sep 17 00:00:00 2001 From: T Date: Tue, 14 Mar 2023 17:23:52 +0800 Subject: [PATCH] gh-100315: clarification to `__slots__` docs. (GH-102621) refer to tp_itemsize in discussion on "variable-length" built-in types (cherry picked from commit 88c262c086077377b40dfae5e46f597e28ffe3c9) Co-authored-by: T --- Doc/reference/datamodel.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst index e5a1e4d89f74ec..a5b8009ba9c04b 100644 --- a/Doc/reference/datamodel.rst +++ b/Doc/reference/datamodel.rst @@ -1876,8 +1876,10 @@ Notes on using *__slots__* 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. -* Nonempty *__slots__* does not work for classes derived from "variable-length" - built-in types such as :class:`int`, :class:`bytes` and :class:`tuple`. +* :exc:`TypeError` will be raised if nonempty *__slots__* are defined for a + class derived from a + :c:member:`"variable-length" built-in type ` such as + :class:`int`, :class:`bytes`, and :class:`tuple`. * Any non-string :term:`iterable` may be assigned to *__slots__*.