【发布时间】:2021-07-04 12:46:20
【问题描述】:
我得到了下一个枚举选项:
class ModeEnum(str, Enum):
""" mode """
map = "map"
cluster = "cluster"
region = "region"
这个枚举用于两个 Pydantic 数据结构。
在一个数据结构中,我需要所有 Enum 选项。
在其他数据结构中,我需要排除region。
如果我为此使用自定义验证并尝试输入一些 other 值,标准验证错误消息会通知,允许的值都是三个。
那么在这种情况下最好的决定是什么?
附:
我在ModeEnum 中使用map 变量。不好吗?我无法想象它可以覆盖内置 map 对象的情况,但是,可以吗?
【问题讨论】:
-
在实践中,覆盖内置变量是不好的,将其重命名为
map_或类似的东西 -
您的
map成员不在全局名称空间中,并且没有覆盖map内置函数,因此使用该名称没有问题。一般来说,覆盖内置名称很好,特别是如果您不使用内置名称。