]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[doc] Mention __slots__ behavior in weakref.rst (GH-21061) (GH-28773)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Wed, 6 Oct 2021 18:52:48 +0000 (11:52 -0700)
committerGitHub <noreply@github.com>
Wed, 6 Oct 2021 18:52:48 +0000 (20:52 +0200)
It took me longer than I expected to figure out why a random class
I dealt with didn't support weak references. I believe this addition
will make the __slots__/weakref interaction more discoverable to people
having troubles with this. (Before this patch __slots__ was not
mentioned in weakref documentation even once).

Co-authored-by: Ɓukasz Langa <lukasz@langa.pl>
(cherry picked from commit b24b47e64355224c1bf4e46ed7c4d9f7df4e6f09)

Co-authored-by: Jakub Stasiak <jakub@stasiak.at>
Doc/library/weakref.rst

index b88543e44537231e20dfa94e7e4f68a683814bce..4b0945c020f843fbe6fc1b2f07828848724e43dd 100644 (file)
@@ -88,6 +88,10 @@ support weak references but can add support through subclassing::
 Extension types can easily be made to support weak references; see
 :ref:`weakref-support`.
 
+When ``__slots__`` are defined for a given type, weak reference support is
+disabled unless a ``'__weakref__'`` string is also present in the sequence of
+strings in the ``__slots__`` declaration.
+See :ref:`__slots__ documentation <slots>` for details.
 
 .. class:: ref(object[, callback])