如何简化枚举?

5
有更好的初始化所有这些模板代码的方法吗?
class Type(Enum):
    Null=auto()
    Bool=auto()
    Int=auto()
    Float=auto()
    Decimal=auto()
    String=auto()
    Bytes=auto()
    Date=auto()
    Time=auto()
    Datetime=auto()
    Timestamp=auto()
    Interval=auto()
    Struct=auto()
    Array=auto()
    Json=auto()

我想要做以下类似的事情,但不幸的是这会破坏Pylance的工作方式(所有内容都显示为引用相关类型的错误):
_Types = ['Null','Bool','Int','Float','Decimal','String','Bytes','Date','Time','Datetime','Timestamp','Interval','Struct','Array','Json']
Type = Enum('Type', {v:i for i,v in enumerate(_Types)})
1个回答

4

我不能代表Pylance,但如果您想要auto实现,您可以直接将类型列表传递给Enum函数。

Type = Enum('Type', ['Null','Bool','Int','Float','Decimal','String','Bytes',
                     'Date','Time','Datetime','Timestamp','Interval','Struct',
                     'Array','Json'])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接