gpt4 book ai didi

python - 解压类定义以在对象之间共享变量名称

转载 作者:行者123 更新时间:2023-12-01 00:18:24 25 4
gpt4 key购买 nike

虽然可能有更好的方式来表达这个问题,但这个想法非常简单。

我有两个类。包裹和包裹请求。 ParcelRequest 在 API 中使用,通过给定参数请求有关 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

每当修改 Parcel 时,是否有办法使 Parcel 和 ParcelRequest 保持“同步”?

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com