当前位置: 首页 > news >正文

Python 枚举enum

在Python中,枚举类型(enum)是一种特殊的数据类型,它允许你将一组相关的常量定义在一起,使代码更加清晰和易于维护。枚举类型在enum模块中定义。

下面是如何在Python中使用枚举类型的示例:

  1. 导入enum模块

     

    python复制代码

    from enum import Enum
  2. 定义一个枚举类

     

    python复制代码

    class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3
  3. 使用枚举类

     

    python复制代码

    # 获取枚举成员
    color = Color.RED
    # 访问枚举成员的值和名称
    print(color.name) # 输出: RED
    print(color.value) # 输出: 1
    # 遍历枚举类的所有成员
    for c in Color:
    print(c.name, c.value)
    # 输出:
    # RED 1
    # GREEN 2
    # BLUE 3
    # 通过名称获取枚举成员
    color_by_name = Color['RED']
    print(color_by_name) # 输出: Color.RED
    # 通过值获取枚举成员(注意:不是所有枚举都支持这种操作,取决于枚举值的唯一性)
    color_by_value = Color(1)
    print(color_by_value) # 输出: Color.RED
  4. 枚举的比较
    枚举成员可以进行比较操作,比较的是它们的值。

     

    python复制代码

    if Color.RED == Color(1):
    print("Color.RED is equal to Color(1)")
    # 输出: Color.RED is equal to Color(1)
  5. 枚举的自动值
    如果你不需要显式地为枚举成员赋值,Python会自动从1开始为它们赋值。

     

    python复制代码

    class Direction(Enum):
    NORTH
    EAST
    SOUTH
    WEST
    for direction in Direction:
    print(direction.name, direction.value)
    # 输出:
    # NORTH 1
    # EAST 2
    # SOUTH 3
    # WEST 4
  6. 自定义枚举值
    枚举成员的值可以是任意不可变类型,不仅仅是整数。

     

    python复制代码

    class Status(Enum):
    NEW = 'new'
    IN_PROGRESS = 'in_progress'
    COMPLETED = 'completed'
    for status in Status:
    print(status.name, status.value)
    # 输出:
    # NEW new
    # IN_PROGRESS in_progress
    # COMPLETED completed

通过使用枚举类型,你可以使代码更具可读性和可维护性,避免使用裸的整数或字符串常量,从而减少错误和混淆。


http://www.mrgr.cn/news/65646.html

相关文章:

  • 时间服务器
  • 【操作系统】基于环形队列的生产消费模型
  • 堆heap的讨论、习题与代码
  • 架构师考试系列(8)论文专题:信息系统安全设计
  • 探索 Intersection Observer API:提升网页性能的新途径
  • 主体Subject和客体Object-西方哲学的思维方式
  • mysql笔记-索引
  • 游游的游戏大礼包
  • windows完结---清风
  • 数据结构---自定义动态数组
  • 从零开发操作系统-为什么磁盘的扇区为 512 byte
  • PMP-人
  • 泛微开发修炼之旅--52关于ecology首页待办修改源码位置记录
  • C#:强大而优雅的编程语言
  • 书签管理工具使用技巧
  • H265编码丢帧问题分析
  • Java-I/O框架10:File类、文件操作
  • 关于LIMS实验室管理系统常见的几个误区
  • 多个锚点定位时的锚点优选方法(附公式和MATLAB代码讲解)
  • CSP 2024 入门级第二轮 CSP-J 2024 复赛 第一题 扑克牌