From 855a80f3f3c7ad288617aeecfd70e269bc144722 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 e94b535901c5e4..87c538f6f2c17f 100644 --- a/Doc/reference/datamodel.rst +++ b/Doc/reference/datamodel.rst @@ -1944,8 +1944,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__*.