我有一个pydantic类,例如:
from pydantic import BaseModel
class Programmer(BaseModel):
python_skill: float
stackoverflow_skill: float
total_score: float = None
现在,我根据其他字段计算总分数:
@validator("total_score", always=True)
def calculat_total_score(cls, v, *, values):
return values.get("python_skill") + values.get("stackoverflow_skill")
这很好,但现在当我改变其中一项技能时:
programmer = Programmer(python_skill=1.0, stackoverflow_skill=9.0)
print(programmer.total_score) # return 10.0
programmer.python_skill=2.0
print(programmer.total_score) # still return 10.0
我想总的_分数自动更新
有什么解决办法吗? TNX
您可以使用root validator进行此操作。每次更新后都会调用它。像这样:
注意:1.7.3之前的版本中有一个bug,因此我建议更新
相关问题 更多 >
编程相关推荐