我正在用 python 创建一个配置管理系统,并正在探索 Hydra/pydantic/两者之间的选项。我对何时使用
MISSING
与仅将其留空/可选感到有点困惑。我将在这里使用 OmegaConf 的示例,因为
九头蛇的底层结构使用它。
@dataclass
class User:
# A simple user class with two missing fields
name: str = MISSING
height: Height = MISSING
其中表示此
MISSING
字段将转换为 yaml 的 ???
等效项。我可以把它留空吗?
我们可以想到三种情况,
Optional[bool]
但是如果您想要一个具有强制选择的三元参数,其中None
并不意味着默认值(bool | None
),该怎么办?您将需要一个特殊的第四个值来声明默认或缺失的属性 -> 3.对我来说,它总结为:当您希望某个值存在时,您想声明它为 MISSING,但您不能为其指定默认值。
关于 omegaconf,您有两个(或三个)案例:
MissingMandatoryValue