Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
[3.12] gh-123242: Note that type.__annotations__ may not exist (GH-12…
…4557)

Closes GH-123242. The real criterion is that the attribute does not
exist on heap types, but I don't think we should discuss heap vs.
static types in the language reference.
(cherry picked from commit 99b23c6)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
  • Loading branch information
JelleZijlstra committed Sep 25, 2024
commit 045504a10ad47c290daad52aefbbd49f84a547b5
8 changes: 8 additions & 0 deletions Doc/reference/datamodel.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1009,6 +1009,14 @@ Special attributes
collected during class body execution. For best practices on working
with :attr:`!__annotations__`, please see :ref:`annotations-howto`.

.. caution::

Accessing the :attr:`!__annotations__` attribute of a class
object directly may yield incorrect results in the presence of
metaclasses. In addition, the attribute may not exist for
some classes. Use :func:`inspect.get_annotations` to
retrieve class annotations safely.

* - .. attribute:: type.__type_params__
- A :class:`tuple` containing the :ref:`type parameters <type-params>` of
a :ref:`generic class <generic-classes>`.
Expand Down