Может использоваться как тип в аннотациях с помощью синтаксиса []
.
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