枚举小结
1. IntEnum和Enum的区别
Enum
可以存放任意数据类型
from enum import Enum
from enum import IntEnum
class VIP(Enum):
YELLOW = 1
RED = 2
GREEN = 'str'
不会报错
IntEnum
只能取int类型的值
class VIP2(IntEnum):
YELLOW = 1
RED = 2
GREEN = 'str'
可以看到,报错了
enum_member = __new__(enum_class, *args)
ValueError: invalid literal for int() with base 10: 'str'
from enum import Enum
from enum import IntEnum,unique
@unique
class VIP(IntEnum):
YELLOW = 1
RED = 2
GREEN = 1
raceback (most recent call last):
File "/Users/scottxiong/Desktop/end/python/basic/enum/c3.py", line 5, in <module>
class VIP(IntEnum):
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/enum.py", line 860, in unique
raise ValueError('duplicate values found in %r: %s' %
ValueError: duplicate values found in <enum 'VIP'>: GREEN -> YELLOW
枚举类型是单例的,不可以实例化,实例化也没有任何意义