我有以下的pydantic模型定义。当我运行
有人知道为什么
谢谢。
p = IntOrStr(value=True)
时,我期望会失败,因为True
是布尔值,它应该无法分配给__int__
和__str__
。请注意保留HTML标签。class IntOrStr(BaseModel):
__int: Optional[conint(strict=True, le=100, ge=10)] = None
__str: Optional[constr(strict=True, max_length=64, min_length=10)] = None
value: Any
@validator("value")
def value_must_be_int_or_str(cls, v):
try:
__int = v # no validation. not sure why?
return v
except ValidationError as e:
print(str(e))
try:
__str = v # no validation. not sure why?
return v
except ValidationError as e:
print(str(e))
raise ValueError("error. value must be int or str")
class Config:
validate_assignment = True
有人知道为什么
__int = v
和 __str = v
不会触发任何验证吗?谢谢。