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>
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])