gpt4 book ai didi

python - 是否可以将名为 'None' 的值添加到枚举类型?

转载 作者:太空狗 更新时间:2023-10-29 21:58:07 25 4
gpt4 key购买 nike

我可以向枚举中添加一个名为“None”的值吗?例如

from enum import Enum
class Color(Enum):
None=0 #represent no color at all
red = 1
green = 2
blue = 3

color=Color.None

if (color==Color.None):
#don't fill the rect
else:
#fill the rect with the color

这个问题与我之前的问题相关 How to set a variable's subproperty?

我当然明白上面的Noneenum不起作用。但是从供应商的代码中,我确实看到了这样的事情: bird.eye.Color=bird.eye.Color.enum.None我检查了 type(bird.eye.Color)这是一个<class 'flufl.enum._enum.IntEnumValue'>所以flufl.enum用来。我想使用 flufl.enum 应该不会有太大的不同。或 Enum .非常感谢!

最佳答案

您可以使用 Enum 构造函数而不是创建子类来完成此操作

>>> from enum import Enum
>>>
>>> Color = Enum('Color', {'None': 0, 'Red': 1, 'Green': 2, 'Blue': 3})
>>> Color.None
<Color.None: 0

编辑:这使用 python 2 的 enum34 backport 工作。在 python 3 中,您将能够使用 None 创建 Enum > 属性,但您将无法使用点表示法进行访问。

>>> Color.None
SyntaxError: invalid syntax

奇怪的是,您仍然可以使用 getattr 访问它

>>> getattr(Color, 'None')
<Color.None: 0>

关于python - 是否可以将名为 'None' 的值添加到枚举类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38773832/

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