AKG*_*AKG 8 python pydantic fastapi
我发现了一个用于声明 Pydantic 模型的代码片段。那里使用的继承让我很困惑。
class RecipeBase(BaseModel):
label: str
source: str
url: HttpUrl
class RecipeCreate(RecipeBase):
label: str
source: str
url: HttpUrl
submitter_id: int
class RecipeUpdate(RecipeBase):
label: str
Run Code Online (Sandbox Code Playgroud)
我不确定在 RecipeCreate 和 RecipeUpdate 类中继承 RecipeBase 有什么好处。让我困惑的部分是,继承之后,为什么还必须重新声明标签、源和 URL,它们已经是 RecipeCreate 类中 RecipeBase 类的一部分?
我\xe2\x80\x99d 说这是教程的疏忽。没有任何好处,只会造成混乱。通常,Base 用于所有重叠字段,并且仅在更改类型时重载它们(例如,XyzBasehasname: str而XyzCreatehasname: str|None因为它在更新实例时不需要提供\xe2\x80\x99t。
该教程没有很好地解释为什么设置是这样的。
\n| 归档时间: |
|
| 查看次数: |
3075 次 |
| 最近记录: |