尽管可以用更好的方式来表达问题,但想法很简单。
我有两节课。包裹和包裹请求。 API中使用ParcelRequest来请求有关具有给定参数的Parcel的信息,以及
实际上,ParcelRequest需要与Parcel相同的所有参数,但需要附加的quantity
值。
from pydantic import BaseModel
class Parcel(BaseModel):
length: float
width: float
height: float
weight: float
class ParcelRequest(BaseModel):
length: float
width: float
height: float
weight: float
quantity: int
每当修改包裹时,有没有办法使包裹和包裹请求保持“同步”?
from pydantic import BaseModel
class Parcel(BaseModel):
length: float
width: float
height: float
weight: float
class ParcelRequest(BaseModel):
# unpack Parcel attributes here
quantity: int
注意:在此特定示例中,我们无法更改传入请求的结构。这意味着,我们不能简单地在ParcelRequest中包含引用Parcel对象的“ parcel”属性,因为这会改变请求的结构。
问题是这是否可以做到。但是作为奖励,应该这样做吗?我的信念是,尽管API会随着Parcel的发展而保持最新,但开发人员可能会通过更新Parcel来无意间破坏API,除非经过仔细的对待且未经适当的测试。
最佳答案
不要重复自己,说出要继承的类:
class MetaParcel(BaseModel):
length: float
width: float
height: float
weight: float
class ParcelRequest(MetaParcel):
quantity: int
关于python - 解压缩类定义以在对象之间共享变量名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59127978/