1

指定された値が指定された範囲外の場合、フィールドを持つ Pydantic クラスをconfloat初期化できません。ただし、このフィールドを後の段階 ( 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