@@ -74,7 +74,7 @@ deferred evaluation of annotations (:pep:`649`),
7474and a new type of interpreter that uses tail calls.
7575
7676The library changes include the addition of a new :mod: `!annotationlib ` module
77- for introspecting and wrapping annotations (:pep: `649 `),
77+ for introspecting and wrapping annotations (:pep: `749 `),
7878a new :mod: `!compression.zstd ` module for Zstandard support (:pep: `784 `),
7979plus syntax highlighting in the REPL,
8080as well as the usual deprecations and removals,
@@ -444,6 +444,10 @@ In particular, do not read annotations directly from the namespace dictionary
444444attribute of type objects. Use :func: `annotationlib.get_annotate_from_class_namespace `
445445during class construction and :func: `annotationlib.get_annotations ` afterwards.
446446
447+ In previous releases, it was sometimes possible to access class annotations from
448+ an instance of an annotated class. This behavior was undocumented and accidental,
449+ and will no longer work in Python 3.14.
450+
447451``from __future__ import annotations ``
448452^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
449453
@@ -2501,6 +2505,11 @@ Changes in the Python API
25012505 See :ref: `above <whatsnew314-typing-union >` for more details.
25022506 (Contributed by Jelle Zijlstra in :gh: `105499 `.)
25032507
2508+ * The runtime behavior of annotations has changed in various ways; see
2509+ :ref: `above <whatsnew314-pep649 >` for details. While most code that interacts
2510+ with annotations should continue to work, some undocumented details may behave
2511+ differently.
2512+
25042513
25052514Build changes
25062515=============
0 commit comments