Python枚举类定义和使用方法

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日

相关文章

  • pip报错“ModuleNotFoundError: No module named ‘pip._vendor.lockfile’”怎么处理?

    当使用pip安装Python包时,可能会遇到“ModuleNotFoundError: No module named ‘pip._vendor.lockfile’”错误。这个错误通常是由以下原因之一引起的: pip版本过低:如果您的pip版本过低,则可能会出现此错误。在这种情况下,需要升级pip版本。 pip安装文件损坏:如果pip安装文件损坏,则可能会出…

    python 2023年5月4日
    00
  • 用python的哈希函数对密码加密

    首先需要了解哈希函数的概念:哈希函数是将任意长度的输入内容计算成固定长度的输出值,该输出值通常被称为哈希值或摘要值。哈希函数的一个重要特征是,相同的输入一定会产生相同的输出,但不同的输入会产生不同的输出。在密码保护中,哈希函数通常用于将密码加密存储。当用户输入密码时,系统会将用户输入的密码通过同样的哈希函数计算出哈希值,并与原始哈希值比较,从而判断密码是否正…

    python 2023年6月2日
    00
  • python中编写函数并调用的知识点总结

    当我们在Python中编写一些复杂的程序时,我们需要对代码进行模块化和重用,函数是实现这一目的的好方法。在本文中,我们将讲解如何编写Python函数并调用它们的知识点。 函数的定义 一个函数就是一个可以执行特定任务的有用代码块。在Python中,我们可以使用“def”关键字来定义函数,其基本语法如下: def function_name(arguments)…

    python 2023年6月5日
    00
  • Python3.5 处理文本txt,删除不需要的行方法

    要删除文本文件中的某些行,可以使用Python3.5的标准库中的fileinput模块和re模块进行正则表达式匹配。以下是一个完整的攻略,分为以下步骤: 步骤1:安装Python3.5在开始之前,我们需要确认在计算机上已经安装了Python3.5版本。如果没有安装,请先从官方网站(https://www.python.org/downloads/)下载并安装…

    python 2023年6月3日
    00
  • python中异常报错处理方法汇总

    在Python编程中,异常处理是一个非常重要的概念。当程序出现错误时,Python会抛出异常。为了使程序更加健壮和稳定,我们需要对异常进行处理。以下是Python中异常报错处理方法的完整攻略。 1. try-except语句 try-except语句是Python中最常用的异常处理方法。try语句块中含可能会抛出异常的代码,如果try语句块中的代码抛出异常,…

    python 2023年5月13日
    00
  • 解决python 输出到csv 出现多空行的情况

    对于“解决python输出到csv出现多空行的情况”,可以采取以下方法: 问题描述 在使用Python输出到CSV文件时,有时会出现多出空行的情况。例如下面的代码: import csv with open(‘test.csv’, ‘w’, newline=”) as csvfile: writer = csv.writer(csvfile) writer…

    python 2023年6月3日
    00
  • Python入门教程(十二)Python列表

    Python入门教程(十二)Python列表 在Python中,列表(List)是一种常用的数据类型,它可以存储多个元素,并且这些元素可以是同一种或不同的数据类型。本文将详细讲解Python中列表的定义、访问、添加、删除、切片等操作,包括使用示例说明。 列表的定义 在Python中,列表可以通过方括号[]来定义,其中每个元素之间用逗号,隔开。例如: # 定义…

    python 2023年5月13日
    00
  • numpy数组广播的机制

    numpy数组广播是指在执行二元操作时,当两个数组的形状不同时,仍然能够完成操作的一种机制。在numpy中,数组广播可以用来处理不同形状的数组之间的操作,可以减少显式循环的使用,使代码更简洁高效。 为方便讲解,考虑以下两个形状不同的二维数组: import numpy as np arr1 = np.array([[1,2], [3,4]]) arr2 = …

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