1

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在上面的示例中调用会引发异常?

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

4

1 回答 1

3

validate_assignmentConfig上使用。

于 2020-07-03T14:32:11.477 回答