枚举小结

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

枚举类型是单例的,不可以实例化,实例化也没有任何意义

results matching ""

    No results matching ""