[3.11] gh-90015: Document that PEP-604 unions do not support forward references (GH-105366) (#105461)

gh-90015: Document that PEP-604 unions do not support forward references (GH-105366)
(cherry picked from commit fbdee000de)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
This commit is contained in:
Miss Islington (bot) 2023-06-07 11:11:33 -07:00 committed by GitHub
parent 34f23904e1
commit 40d1d28b07
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -5109,6 +5109,14 @@ enables cleaner type hinting syntax compared to :data:`typing.Union`.
def square(number: int | float) -> int | float: def square(number: int | float) -> int | float:
return number ** 2 return number ** 2
.. note::
The ``|`` operand cannot be used at runtime to define unions where one or
more members is a forward reference. For example, ``int | "Foo"``, where
``"Foo"`` is a reference to a class not yet defined, will fail at
runtime. For unions which include forward references, present the
whole expression as a string, e.g. ``"int | Foo"``.
.. describe:: union_object == other .. describe:: union_object == other
Union objects can be tested for equality with other union objects. Details: Union objects can be tested for equality with other union objects. Details: