Python枚举类定义和使用方法

yizhihongxing

Python枚举类定义和使用方法

枚举是一种由一组固定的值所组成的类型,通常用于代表那些有限的、可枚举的值。

Python中的枚举是通过Enum类实现的,在使用枚举之前,需要先导入Enum类。

from enum import Enum
  • 定义枚举类

定义一个枚举类的方式就是创建一个类,然后让其继承自Enum类,并在类中定义属性。

from enum import Enum

class Fruit(Enum):
    APPLE = 0
    BANANA = 1
    ORANGE = 2

上面定义的Fruit枚举类包含了三个属性,分别是APPLE、BANANA、ORANGE。属性名是全大写的,值可以是任意类型,但是值必须是唯一的。

  • 枚举类使用

使用枚举类的时候,可以通过属性访问枚举值,也可以通过枚举名称访问枚举值。

from enum import Enum

class Fruit(Enum):
    APPLE = 0
    BANANA = 1
    ORANGE = 2

print(Fruit.APPLE)  # Fruit.APPLE
print(Fruit.APPLE.value)  # 0
print(Fruit['APPLE'])  # Fruit.APPLE
print(Fruit(0))  # Fruit.APPLE
  • 枚举值的比较

枚举值可以通过比较运算符进行比较,可以比较枚举名称和枚举值。

from enum import Enum

class Fruit(Enum):
    APPLE = 0
    BANANA = 1
    ORANGE = 2

if Fruit.APPLE == Fruit.APPLE:
    print("Fruit.APPLE == Fruit.APPLE")  # Fruit.APPLE == Fruit.APPLE

if Fruit.APPLE == Fruit(0):
    print("Fruit.APPLE == Fruit(0)")  # Fruit.APPLE == Fruit(0)

if Fruit.APPLE == 0:
    print("Fruit.APPLE == 0")  # TypeError: unsupported operand type(s) for ==: 'Fruit' and 'int'
  • 枚举类型的遍历

枚举类型可以通过for循环进行遍历。

from enum import Enum

class Fruit(Enum):
    APPLE = 0
    BANANA = 1
    ORANGE = 2

for name, member in Fruit.__members__.items():
    print(name, member, member.value)
    """
    APPLE Fruit.APPLE 0
    BANANA Fruit.BANANA 1
    ORANGE Fruit.ORANGE 2
    """

示例1

from enum import Enum

class Color(Enum):
    RED = 0xFF0000
    GREEN = 0x00FF00
    BLUE = 0x0000FF

COLOR = Color.RED

print(COLOR)  # Color.RED
print(COLOR.value)  # 16711680
print(Color.GREEN)  # Color.GREEN
  • 执行结果:
Color.RED
16711680
Color.GREEN

示例2

from enum import Enum

class Weekday(Enum):
    MONDAY = 1
    TUESDAY = 2
    WEDNESDAY = 3
    THURSDAY = 4
    FRIDAY = 5
    SATURDAY = 6
    SUNDAY = 7

def is_workday(day):
    if day in (Weekday.MONDAY, Weekday.TUESDAY, Weekday.WEDNESDAY, Weekday.THURSDAY, Weekday.FRIDAY):
        return True
    return False

print(is_workday(Weekday.MONDAY))  # True
print(is_workday(Weekday.SATURDAY))  # False
  • 执行结果:
True
False

以上就是Python枚举类的定义和使用方法,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python枚举类定义和使用方法 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • 基于python的mysql复制工具详解

    我将为您提供一份“基于python的mysql复制工具详解”的完整实例教程。 标题 什么是MySQL复制? MySQL复制是指将整个数据库或部分数据库从一个MySQL服务器复制到另一个MySQL服务器的过程。MySQL复制可用于实现高可用性和灾备恢复等操作。 MySQL复制有哪些组件? MySQL复制涉及两个或更多MySQL服务器的通信,主要有以下三个组件:…

    python 2023年5月13日
    00
  • python如何实现复制目录到指定目录

    下面是 Python 如何实现复制目录到指定目录的完整攻略。 1. 使用 shutil 模块中的 copytree 函数进行复制 shutil 是 Python 标准库中的一个文件操作库,其中提供了 copytree 函数,可以用于将一个目录的全部文件复制到指定的目录。 以下是一个示例代码: import shutil # 定义源目录和目标目录 src_di…

    python 2023年6月5日
    00
  • python函数和python匿名函数lambda详解

    Python 函数和 Python 匿名函数(lambda)详解 什么是函数? 函数是一种可重用的、可调用的代码块,它接受一些输入(可能为空),并通过执行过程生成一些输出。Python 中的函数定义以 def 关键字开头,后面是函数名、参数列表和冒号,之后是一个缩进的代码块。函数可以返回一个值(使用 return 语句)。以下是一个计算两个数字相加的函数示例…

    python 2023年5月14日
    00
  • python 命令行传参方法总结

    下面是关于“Python 命令行传参方法总结”的完整攻略: Python 命令行传参方法总结 在编写 Python 脚本时,我们通常需要从命令行传入一些参数。这篇文章将介绍 Python 中命令行传参的几种方法,包括使用 argparse 模块、使用 sys 模块以及使用 getopt 模块。 使用 argparse 模块 argparse 模块是 Pyth…

    python 2023年6月3日
    00
  • Python 子进程/Popen 标准输出被截断

    【问题标题】:Python subprocess/Popen stdout is truncatedPython 子进程/Popen 标准输出被截断 【发布时间】:2023-04-06 21:15:02 【问题描述】: Popen stdout 的输出与从 Shell 运行命令或使用 os.system 不同: cmd = [‘git’, ‘diff’, c…

    Python开发 2023年4月7日
    00
  • Python自动创建Excel并获取内容

    下面我将为您详细讲解Python自动创建Excel并获取内容的完整实例教程。 1.使用Python库xlwt创建Excel文件 通过Python库xlwt,可以自动创建Excel表格并对其进行编辑和填充。以下是创建一个包含3行3列的Excel表格的Python代码示例: # 引入xlwt库 import xlwt # 创建一个workbook对象,相当于创建…

    python 2023年5月13日
    00
  • 基于Python实现简易学生信息管理系统

    基于Python实现简易学生信息管理系统 系统简介 本系统是基于Python语言实现的简易学生信息管理系统。它可以方便地增加、删除、修改和查询学生信息,同时支持将信息存储到文件或者从文件中读取信息。系统主要包含以下功能模块: 添加学生信息 删除学生信息 修改学生信息 查询学生信息 展示所有学生信息 保存学生信息到文件 从文件中读取学生信息 系统实现 数据结构…

    python 2023年5月19日
    00
  • Python函数和模块的使用总结

    “Python函数和模块的使用总结”是一个比较庞大的主题,需要对Python的函数和模块有一定的了解才能掌握。本文将为大家介绍Python函数和模块的概念、用法以及示例,希望能够帮助大家更好地掌握Python函数和模块的使用方法。 什么是Python函数 函数是一段可以反复调用执行某一特定任务的代码块,它能够接收参数和返回值。Python中定义函数的语法如下…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部