Easton's Blog Easton's Blog
首页
  • 编程语言

    • Python
  • 框架

    • Django
  • Mdn (opens new window)
  • HTML
  • CSS
  • JavaScript
  • Mysql
  • PostgreSQL
  • Elasticsearch
  • MongoDB
  • Redis
  • 服务器命令
  • Docker
  • GIT
  • 摄影
  • 草稿
  • 归类方式

    • 分类
    • 标签
    • 归档
  • 关于博客

    • 博客教程
    • 友情链接
    • 关于
导航站
GitHub (opens new window)

Easton Yang

爱生活😊爱学习
首页
  • 编程语言

    • Python
  • 框架

    • Django
  • Mdn (opens new window)
  • HTML
  • CSS
  • JavaScript
  • Mysql
  • PostgreSQL
  • Elasticsearch
  • MongoDB
  • Redis
  • 服务器命令
  • Docker
  • GIT
  • 摄影
  • 草稿
  • 归类方式

    • 分类
    • 标签
    • 归档
  • 关于博客

    • 博客教程
    • 友情链接
    • 关于
导航站
GitHub (opens new window)
  • Python

    • Python学习

      • 特殊方法
      • 常用内置函数
      • 数据类型
      • with用法
      • Python面向对象
      • re正则
      • 线程
      • 进程
      • 协程
      • 装饰器
      • 堆队列heapq
      • 容器collections
      • 内置异常
      • 枚举
        • 枚举用法
      • 好玩的函数
    • 代码

    • 数据结构与算法

  • Django

  • 后端
  • Python
  • Python学习
eastonyangxu
2023-09-04
目录

枚举

枚举 python3.8 官网 (opens new window)

# 枚举用法

from enum import Enum, unique, auto


# 枚举是一组符号名称(枚举成员)的集合,枚举成员应该是唯一的、不可变的。在枚举中,可以对成员进行恒等比较,并且枚举本身是可迭代的。
# 因为枚举是被用来 代表常量 的所以我们建议枚举成员名称应使用 大写 形式,并将在我们的示例中使用此种风格。

# class enum.Enum , 此基类用于创建枚举常量。 请参阅 Functional API 小节了解另一种替代性的构建语法。
# class enum.IntEnum , 此基类用于创建属于 int 的子类的枚举常量。
# class enum.IntFlag , 此基类用于创建可使用按位运算符进行组合而不会丢失其 IntFlag 成员资格的枚举常量。 IntFlag 成员同样也是 int 的子类。
# class enum.Flag , 此基类用于创建枚举常量 可使用按位运算符进行组合而不会丢失其 Flag 成员资格的枚举常量。
# enum.unique() , 此 Enum 类装饰器可确保只将一个名称绑定到任意一个值。
# class enum.auto , 实例会被替换为一个可作为 Enum 成员的适当的值。 初始值从 1 开始。

# 成员值可以为任意类型: int, str 等等。 如果具体的值不重要,你可以使用 auto 实例,将为你选择适当的值。 但如果你混用 auto 与其他值则需要小心谨慎
@unique  # 确保枚举值唯一
class Color(Enum):
    RED = 1
    BLACK = 2
    BLUE = 3


print(Color.RED)  # Color.RED
print(repr(Color.RED))  # <Color.RED: 1> , repr 包含更多信息
print(type(Color.RED))  # <enum 'Color'>
print(isinstance(Color.BLUE, Color))  # True
print(Color.RED.name)  # RED
print(Color.RED.value)  # 1

# 枚举支持按照定义顺序进行迭代
for c in Color:
    print(c)
# 按插入类中顺序迭代
# Color.RED
# Color.BLACK
# Color.BLUE

# 枚举成员是可哈希的,因此它们可在字典和集合中可用
apples = dict()
apples[Color.RED] = 'red delicious'
print(apples)  # {<Color.RED: 1>: 'red delicious'}
print({Color.RED: 'red delicious'} == apples)  # True

print(Color(1))  # Color.RED
print(Color['RED'])  # Color.RED


class Color1(Enum):
    RED = auto()
    BLUE = auto()
    GREEN = auto()


print(list(Color1))  # [<Color1.RED: 1>, <Color1.BLUE: 2>, <Color1.GREEN: 3>]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#Python
上次更新: 2023/09/04, 18:39:45
内置异常
好玩的函数

← 内置异常 好玩的函数→

最近更新
01
攻略制作要点
07-18
02
摄影主题拍摄
07-18
03
延时摄影剧本
07-18
更多文章>
Theme by Vdoing | Copyright © 2023-2024 Easton Yang | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式