文章目录
  1. 1. Python高级语法介绍
    1. 1.1. 运行环境
    2. 1.2. 枚举的使用
      1. 1.2.1. 枚举的定义
      2. 1.2.2. 枚举的操作
      3. 1.2.3. 枚举注意事项

Python高级语法介绍

介绍Python3枚举的使用和其他高级语法

运行环境

1
2
3
os:Windows
Python_version=v3.6.4
idea=vscode

枚举的使用

枚举的定义

枚举类型是在Python3中添加的

1
2
3
4
5
6
7
8
9
10
"""
枚举类介绍和定义
"""
from enum import Enum
class VIP(Enum):
YELLOW = 1
GREEN = 2
BLACK = 3
RED = 4

枚举通过集成类Enum实现,也就是说枚举类其实是类Enum的子类;那枚举和普通类的区别是什么呢,如下

  • 枚举类的属性不能被修改

    执行代码VIP.YELLOW = 6,出现如下错误

    枚举类修改属性值错误

  • 枚举类不能出现同样的标签,也就是不能重新两个属性名YELLOW

    如下代码

    1
    2
    3
    4
    5
    6
    7
    8
    from enum import Enum
    class VIP(Enum):
    YELLOW = 1
    GREEN = 2
    BLACK = 3
    RED = 4
    YELLOW = 5

    执行出现如下错误:

    枚举类不能定义相同属性名

  • 枚举是单例的

枚举的操作

  • 枚举值的获取

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from enum import Enum
    class VIP(Enum):
    YELLOW = 1
    GREEN = 2
    BLACK = 3
    RED = 4
    # YELLOW = 5
    print(VIP.BLACK.value)

  • 枚举名称的获取

    1
    2
    3
    4
    5
    6
    7
    8
    from enum import Enum
    class VIP(Enum):
    YELLOW = 1
    GREEN = 2
    BLACK = 3
    RED = 4
    # YELLOW = 5

    print(VIP.BLACK.value)
    print(VIP.YELLOW.name)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    - 枚举的遍历
    ```python
    from enum import Enum
    class VIP(Enum):
    YELLOW = 1
    GREEN = 2
    BLACK = 3
    RED = 4
    # YELLOW = 5
    print(VIP.BLACK.value)
    print(VIP.YELLOW.name)
    for v in VIP:
    print(v)

    它们的输出结果是:

    1
    2
    3
    4
    5
    6
    3
    YELLOW
    VIP.YELLOW
    VIP.GREEN
    VIP.BLACK
    VIP.RED

枚举注意事项

当枚举定义不同标签和相同的值时,枚举默认认为第二个出现的是第一个的别名,具体如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
"""
枚举注意事项
"""
from enum import Enum
class VIP(Enum):
YELLOW = 1
YELLOW_ALIAS = 1
GREEN = 2
BLACK = 3
RED = 4
for v in VIP:
print(v)

输出结果是:

1
2
3
4
VIP.YELLOW
VIP.GREEN
VIP.BLACK
VIP.RED

并没有输出YELLOW_ALIAS

如果需要输出相同值的别名可以通过如下方式:

1
2
3
4
5
6
7
8
9
10
11
from enum import Enum
class VIP(Enum):
YELLOW = 1
YELLOW_ALIAS = 1
GREEN = 2
BLACK = 3
RED = 4
for v in VIP.__members__:
print(v)

枚举的定义值只能是整型并且枚举的值不能重复

1
2
3
4
5
6
7
8
9
10
11
12
from enum import Enum
from enum import IntEnum,unique
# 继承IntEnum值只能是整型
# 使用unique装饰器值不能重复
@unique
class VIP(IntEnum):
YELLOW = 1
YELLOW_ALIAS = 5
GREEN = 2
BLACK = 3
RED = 4
文章目录
  1. 1. Python高级语法介绍
    1. 1.1. 运行环境
    2. 1.2. 枚举的使用
      1. 1.2.1. 枚举的定义
      2. 1.2.2. 枚举的操作
      3. 1.2.3. 枚举注意事项