我在申报Pydantic模型时得了code snippet分.那里使用的遗产让我感到困惑.

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

我不确定在RecipeCreate和RecipeUpdate类中继承RecipeBase有什么好处.让我困惑的是,在继承之后,为什么还要重新声明标签、源和URL,它们已经是RecipeCreate类中RecipeBase类的一部分?

推荐答案

我认为这是教程的疏忽.没有好处,只会引起混乱.通常,Base用于所有重叠字段,并且它们仅在更改类型时重载(例如,XyzBase具有name: str,而XyzCreate具有name: str|None,因为在更新实例时不必提供它).

本教程在解释为什么设置是这样时做得很糟糕.

Python相关问答推荐

查找3D数组中沿一个轴的相同值序列的长度(与行程长度编码相关)

如何将Pydantic URL验证限制为特定主机或网站

Plotly Dash函数来切换图形参数-pPython

当pip为学校作业(job)安装sourcefender时,我没有收到匹配的分发错误.我已经try 过Python 3.8.10和3.10.11

如何处理必须存在于环境中但无法安装的Python项目依赖项?

从管道将Python应用程序部署到Azure Web应用程序,不包括需求包

Python中是否有方法从公共域检索搜索结果

Python中的负前瞻性regex遇到麻烦

配置Sweetviz以分析对象类型列,而无需转换

如何计算两极打印机中 * 所有列 * 的出现次数?

根据条件将新值添加到下面的行或下面新创建的行中

当多个值具有相同模式时返回空

将两只Pandas rame乘以指数

' osmnx.shortest_track '返回有效源 node 和目标 node 的'无'

在Mac上安装ipython

在Python中动态计算范围

DataFrames与NaN的条件乘法

转换为浮点,pandas字符串列,混合千和十进制分隔符

python中的解释会在后台调用函数吗?

如何使用SentenceTransformers创建矢量嵌入?