Может использоваться как тип в аннотациях с помощью синтаксиса [].
from typing import Optional Optional[X]
X - тип данных.Тип Optional() модуля typing представляет собой аннотацию неопределенного типа.
Запись Optional[X] эквивалентна записи X | None (или Union[X, None]).
Обратите внимание, что это не то же самое, что необязательный аргумент, который имеет значение по умолчанию. Необязательный аргумент со значением по умолчанию не требует квалификатора Optional в аннотации его типа только потому, что он является необязательным.
Например:
def foo(arg: int = 0) -> None: ...
С другой стороны, если разрешено явное значение None, то использование typing.Optional уместно, независимо от того, является ли аргумент необязательным или нет.
Например:
def foo(arg: Optional[int] = None) -> None: ...
Изменено в версии 3.10: Optional теперь может быть записан как X|None