Ага! Обычно переменные python изменяемы (типы могут меняться), но указание на это в таком виде - хорошая документация и очень ясно дает понять, что и куда идет.
Дополнительную документацию по использованию можно найти здесь! https://docs.python.org/3/library/typing.html
РЕДАКТИРОВАТЬ: Уточните ответ на обновленный вопрос
Документация PEP , на которую вы ссылаетесь, определяет, как подсказки типа, хотя и полезные, по-прежнему подвержены ошибкам.
Если указать Dict[str, Any]
, str
может быть «arbitrary
», что означает, что это может быть строковый ключ любого (ie. name
, age
, height
, humidity
). Из этих ключей можно подумать, что «humidity
» не должно быть одним из строковых ключей для этого dict
, но нет способа проверить или принудительно применить это, пока не произойдет какая-то ошибка в будущем ( следовательно, он «произвольный»; нет правил, определяющих, какие «разрешенные» строковые ключи для этого dict
).
Следовательно, согласно документации, указание этого класса (производного от TypedDict
):
class Movie(TypedDict):
name: str
year: int
будет специально ограничивать пользователей создавать новый тип dict
(a TypedDict
) со строковыми ключами name
и year
(с соответствующими введенными значениями str
и int
). Пользователи не смогут «произвольно» добавить новый ключ (ie. humidity
) к этому «Movie
» TypedDict
или иным образом присвоить Movie["year"]
. * 1043 значение, отличное от int
. *