def square(number: int | float) -> int | float:
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
Union objects can be tested for equality with other union objects. Details: