Отметьте элементы как обязательные или необязательные в TypedDict в Python

Чтобы пометить отдельные элементы в TypedDict как обязательные или необязательные, вы можете использовать конструкции typing.Optionalи typing.Unionв Python. Вот несколько методов, которые вы можете использовать:

Метод 1: использование опционального
Вы можете сделать элемент в TypedDict необязательным, обернув его тип тегом Optional. Например:

from typing import TypedDict, Optional
class MyTypedDict(TypedDict):
    required_item: str
    optional_item: Optional[int]

В приведенном выше примере optional_itemпомечен как необязательный с помощью Optional[int]. Это означает, что его можно опустить или иметь значение None.

Метод 2: использование Union
Вы также можете использовать Unionдля указания нескольких типов, включая None, чтобы указать, что элемент является необязательным. Например:

from typing import TypedDict, Union
class MyTypedDict(TypedDict):
    required_item: str
    optional_item: Union[int, None]

В этом случае optional_itemможет иметь либо целое значение, либо None.

Метод 3. Использование значений по умолчанию.
Другой подход заключается в присвоении элементу значения по умолчанию, чтобы указать, что он не является обязательным. Однако этот метод может не обеспечить отсутствие элемента, если ему явно указано значение по умолчанию. Вот пример:

from typing import TypedDict
class MyTypedDict(TypedDict):
    required_item: str
    optional_item: int = 0  # Default value

В этом случае optional_itemприсваивается значение по умолчанию 0, что указывает на то, что он не является обязательным. Если значение не указано явно, по умолчанию оно будет равно 0.