In [1]: from pydantic import BaseModel
...:
...: class User(BaseModel):
...: id: int
...: name: str = "John Doe"
...:
In [2]: User(name=120, id="gavin")
---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
File <ipython-input-8-cae6c1ea967b>:1, in <cell line: 1>()
----> 1 User(name=120, id="gavin")
File ~/Desktop/projects-bench/env/lib/python3.10/site-packages/pydantic/main.py:342, in pydantic.main.BaseModel.__init__()
ValidationError: 1 validation error for User
id
value is not a valid integer (type=type_error.integer)
1条答案
按热度按时间kxkpmulp1#
从文档和您在问题中添加的函数docstring中:
TypedDict声明一个字典类型,该字典类型期望其所有示例都具有某个键集,其中每个键都与一致类型的值相关联。此期望在运行时不进行检查,而仅由类型检查器强制执行。
Python运行时不会强制执行这些限制,它们应该只作为输入"提示"使用,而不是运行时验证器。
你可能想使用类型检查/验证库,比如Pydantic来验证你的对象,下面是Pydantic的一个基本模型:
点击此处阅读更多信息。