我想通过读取YAML文件中的值在运行时创建枚举类型.所以我有这个:
# Fetch the values
v = {'foo':42, 'bar':24}
# Create the enum
e = type('Enum', (), v)
Run Code Online (Sandbox Code Playgroud)
有没有正确的方法呢?我觉得打电话type
不是一个非常简洁的解决方案.
awe*_*oon 31
您可以使用Enum
功能API创建新的枚举类型:
In [1]: import enum
In [2]: DynamicEnum = enum.Enum('DynamicEnum', {'foo':42, 'bar':24})
In [3]: type(DynamicEnum)
Out[3]: enum.EnumMeta
In [4]: DynamicEnum.foo
Out[4]: <DynamicEnum.foo: 42>
In [5]: DynamicEnum.bar
Out[5]: <DynamicEnum.bar: 24>
In [6]: list(DynamicEnum)
Out[6]: [<DynamicEnum.foo: 42>, <DynamicEnum.bar: 24>]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6716 次 |
最近记录: |