Сообщить об ошибке.

Тип аннотации Optional модуля typing в Python

Типизация неопределенного типа

Может использоваться как тип в аннотациях с помощью синтаксиса [].

Синтаксис:

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