设置值时验证Pydantic字段

时间:2020-07-03 12:52:42

标签: python-3.x validation pydantic

具有confloat字段的Pydantic类,如果为其提供的值超出指定范围,则无法初始化。但是,在稍后阶段(my_object.constrained_field = <big_value>)设置此字段时,新值不会得到验证。

from pydantic import BaseModel, confloat

class testClass(BaseModel):
    a: confloat(gt=0.0, lt=10.0)

x = testClass(a=2.0) # OK

# x = testClass(a=20.0) # ERROR: outside limits

x.a = 40.0 # OK despite outside limits

print(x.a) # prints '40.0'

设置成员时是否可以验证新值,以便在上面的示例中调用x.a = 40.0会引发异常?

如果不是-是否有解决方法,例如从类字段中获取验证器方法?

1 个答案:

答案 0 :(得分:1)

Config上使用validate_assignment