美文网首页python
python之枚举类型

python之枚举类型

作者: 秣禾 | 来源:发表于2022-04-20 20:37 被阅读0次

1 简介

枚举是在 Python3.4 添加的新功能。Python3.4 之前的版本可以使用,但是不能直接使用,使用之前需要先用 pip install enum 安装。

1.1什么是枚举?

枚举可看作是一系列符号名称的集合,集合中每一个元素要保证唯一性和不可变,因此我们可以对枚举中元素进行恒等比较,通俗来讲枚举就是一系列常量的集合,枚举是可迭代的。

1.2枚举有什么作用?

枚举具有不可变的特性,所以枚举的主要作用就是用来定义常量的。

2 使用

2.1 创建

枚举语法与 class 语法相同:枚举的定义可以通过继承 Enum 的方式来实现, 看一下示例:

from enum import Enum

class WeekDay(Enum):
    Mon = 0
    Tue = 1
    Wed = 2
    Thu = 3
    Fri = 4

2.2 访问

枚举成员及属性的访问如下所示:

# 枚举成员
print(WeekDay.Mon)
# 枚举成员名称
print(WeekDay.Mon.name)
# 枚举成员值
print(WeekDay.Mon.value)  

枚举的迭代也很简单,如下所示:

# 方式 1
for day in WeekDay:
    # 枚举成员
    print(day)
    # 枚举成员名称
    print(day.name)
    # 枚举成员值
    print(day.value)

# 方式 2
print(list(WeekDay)) 

2.3 比较

枚举成员及属性可以使用 is 进行对象比较,还可以使用 == 进行值比较,看下示例:

print(WeekDay.Mon is WeekDay.Thu)
print(WeekDay.Mon == WeekDay.Mon)
print(WeekDay.Mon.name == WeekDay.Mon.name)
print(WeekDay.Mon.value == WeekDay.Mon.value)

枚举成员不能进行大小比较,如下所示:

>>> WeekDay.Mon < WeekDay.Thu
TypeError: '<' not supported between instances of 'WeekDay' and 'WeekDay'

2.4 确保枚举值唯一

我们定义枚举时,成员名称是不可以重复的,但成员值是可以重复的,如果想要保证成员值不可重复,可以通过装饰器 @unique 来实现,如下所示:

 from enum import Enum, unique

@unique
class WeekDay(Enum):
    Mon = 0
    ...

参考:
https://docs.python.org/zh-cn/3/library/enum.html#enum.IntEnum

相关文章

  • python之枚举类型

    1 简介 枚举是在 Python3.4 添加的新功能。Python3.4 之前的版本可以使用,但是不能直接使用,使...

  • Python枚举类型

    from enumimport Enum class Color(Enum): Yellow ="#111" ...

  • Python_枚举

    一、枚举 Enum类 Python中所有枚举类型都是enum模块下的Enum类的子类。 枚举中的标识最好全部使用大...

  • C语言基础 之 枚举类型

    枚举类型 枚举类型: 列出所有可能的值 枚举类型的定义 枚举类型定义的一般格式:enum 枚举类型名 {枚举值表}...

  • Swift 基础笔记 - 枚举

    枚举 OC定义和使用枚举 Swift定义枚举类型 Swift判断枚举类型 枚举成员类型

  • Python学习笔记九(枚举)

    枚举 python 3中新增相比字典以及类变量,枚举用来抽象类型具有优势有1、值不可变;2、防止相同值 获取枚举类...

  • Python 中愉快地使用 enum

    枚举类型,到底需要不需要? Python 2.x 中是没有原生的枚举类型的,可能有些人觉得这不算个事,他们使用类,...

  • Python与枚举

    前言 枚举是一个常见的数据类型。在Python中枚举却不是一个类型,而是一个类。简单粗暴! 使用 结果 很简单,很...

  • 枚举

    枚举 枚举就是专门用来表示几种固定类型的取值 枚举的本质就是基本数据类型,整型 枚举类型定义格式 定义枚举类型变量...

  • 枚举、元类和错误调试

    枚举 在各种编程语言中常用的枚举类型在python中当然不例外的也是有的,创建一个枚举非常简单,如下: 创建了一个...

网友评论

    本文标题:python之枚举类型

    本文链接:https://www.haomeiwen.com/subject/rwvnsrtx.html