Чтобы пометить отдельные элементы в 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.