我遇到了一个看起来像这样的代码:
class State(IntEnum):
READY = 1
IN_PROGRESS = 2
FINISHED = 3
FAILED = 4
我得出的结论是,该State类可以以相同的方式继承
Enum
类。从
IntEnum
继承给了我什么,而从常规类Enum
继承却没有呢?它们之间有什么区别? 最佳答案
从python Docs中:
枚举:用于创建枚举常量的基类。
和:
IntEnum:用于创建枚举常量的基类,这些常量也是int的子类。
它说IntEnum
的成员可以与整数进行比较;通过扩展,也可以将不同类型的整数枚举进行比较。
看下面的例子:
class Shape(IntEnum):
CIRCLE = 1
SQUARE = 2
class Color(Enum):
RED = 1
GREEN = 2
Shape.CIRCLE == Color.RED
>> False
Shape.CIRCLE == 1
>>True
它们的行为与整数相同:
['a', 'b', 'c'][Shape.CIRCLE]
>> 'b'
关于python - Python中Enum和IntEnum之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52929954/