https://github.com/python/cpython/commit/7ce138fa9bc69fd4dba4634835fa945089de95eb
commit: 7ce138fa9bc69fd4dba4634835fa945089de95eb
branch: 3.12
author: Jelle Zijlstra <[email protected]>
committer: JelleZijlstra <[email protected]>
date: 2024-09-25T16:27:10-07:00
summary:
[3.12] gh-123242: Note that type.__annotations__ may not exist (GH-124557)
(#124562)
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 99b23c64de301c9e77add6b0d8e60118ef807840)
files:
M Doc/reference/datamodel.rst
diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst
index ae2b8fcaf87939..5dcdb7bd8dd414 100644
--- a/Doc/reference/datamodel.rst
+++ b/Doc/reference/datamodel.rst
@@ -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>`.
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]