首页 > 编程语言 >python 标准库Enum模块

python 标准库Enum模块

时间:2023-08-08 17:01:03浏览次数:46  
标签:ColorEnum enum python Enum 枚举 模块 print RED

1.Enum模块简介

枚举(enumeration)在许多编程语言中常被表示为一种基础的数据结构使用,枚举帮助组织一系列密切相关的成员到同一个群组机制下,一般各种离散的属性都可以用枚举的数据结构定义,比如颜色、季节、国家、时间单位等
enum规定了一个有限集合的属性,限定只能使用集合内的值,明确地声明了哪些值是合法值,如果输入不合法的值会引发错误,只要是想要从一个限定集合取值使用的方式就可以使用enum来组织值

python中的标准库Enum模块定义了四个枚举类,可用于定义唯一的名称和值集:Enum,IntEnum,Flag和IntFlag。它还定义了一个装饰器,unique()和一个helper,auto。

Content                      Description                                                                                   Remarks
class enum.Enum           创建枚举实例的基类    
class enum.IntEnum        用于创建同属于int子类枚举常量的基类    
class enum.IntFlag        用于创建枚举常量的基类,可以使用按位运算符组合而不会丢失其IntFlag成员资格。 IntFlag成员也是int的子类。     New in version 3.6
class enum.Flag           用于创建枚举常量的基类,可以使用按位运算符组合而不会丢失其IntFlag成员资格。                              New in version 3.6
unique()                  枚举类装饰器,用于确保任何一个值只有一个名字与其绑定    
class enum.auto           实例被替换为枚举成员的合适值。                                                                    New in version 3.6

2.Enum常用方法简介

# 定义
from enum import Enum, unique
# 这行unique装饰器可以让枚举类中不能有重复值
# @unique
class ColorEnum(Enum):
    RED = "red"
    GREEN = "green"
    BLUE = "blue"
    # PINK = "red"
    # 这里如果加上了unique装饰器,运行时会报错duplicate names
    # 没加装饰器,可以设置相同属性。但是PINK会被当作RED的别名,即 ColorEnum.PINK

# 取值
print(ColorEnum.RED)
# 输出 ColorEnum.RED, 注意这里无法输出值

print(ColorEnum.RED.value)
# 输出 "red" value表示枚举的值

print(ColorEnum.RED.name)
# 输出 "RED"  name表示输出枚举变量

# 内置属性
print(ColorEnum._member_names_)
# 输出 ['RED', 'GREEN', 'BLUE'] 即全部枚举变量的列表

print(ColorEnum._value2member_map_)
# 输出 {'red': <ColorEnum.RED: 'red'>, 'green': <ColorEnum.GREEN: 'green'>, 'blue': <ColorEnum.BLUE: 'blue'>}
# 这是一个字典,字典键是枚举值,值是枚举变量
# 通过这两个内置属性可以轻易获取全部枚举值和变量

print(ColorEnum._value2member_map_.keys())
#dict_keys(['red', 'green', 'blue']),可通过此方式获取全部枚举变量的值

print(ColorEnum.__members__.items())
# 得到全部枚举值odict_items([('RED', <ColorEnum.RED: 'red'>), ('GREEN', <ColorEnum.GREEN: 'green'>), ('BLUE', <ColorEnum.BLUE: 'blue'>)])

#遍历
for item in ColorEnum:
    print(item.name)
    print(item.value)


#使用自动赋值
#如果确切的值不重要,您可以使用auto:

from enum import Enum, auto
class Color(Enum):
   RED = auto()
   BLUE = auto()
   GREEN = auto()
print(list(Color))
#[<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]
View Code

 

 

>>>>>待续

标签:ColorEnum,enum,python,Enum,枚举,模块,print,RED
From: https://www.cnblogs.com/wuxunyan/p/17614819.html

相关文章

  • Unittest + python + Selenium + HTMLTestRunner 自动化测试
      1.测试框架参数说明 base/base_page.py对selenium方法进行二次封装 config/setting.py基础信息 pageobject/把每个页面的页面元素和操作,放在一个py文件中。测试用例只需引用对应页面的操作 report存放测试报告的 runcase/start_ca......
  • 利用Python Flask蓝图加自定义蓝图划分优雅的目录结构
    我们在用Flask开发网站的时候。经常看到有很多人把所有的路由函数放到了入口文件,这种做法是非常不可取的,如果我们的视图函数有几百个了都写到一个文件里肯定是不行的。还有在实现中我们都在比较大型项目里面我们可能有十几个甚至几十个这种不同模型。我们需要考虑把这些模型分文别......
  • pip安装加速&&python淘宝镜像安装包
    国内源:新版ubuntu要求使用https源,要注意。清华:https://pypi.tuna.tsinghua.edu.cn/simple阿里云:http://mirrors.aliyun.com/pypi/simple/中国科技大学https://pypi.mirrors.ustc.edu.cn/simple/华中理工大学:http://pypi.hustunique.com/山东理工大学:http://pypi.sdutlinux......
  • appium + python | UI 自动化测试
     tradeBtns=(By.ID,"com.hexin.plat.android.MinShengSecurity.test:id/title")self.driver.find_elements(tradeBtns)[3].click()不支持以上语法。......
  • 基于python tornado实现的简易图床
    基于pythontornado实现的简易图床项目地址因为买了阿里/腾讯的云服务器,但是使用云存储还需要收费,又加上家里正好有一台nas,又加上闲的没事,所以搞了一个小脚本这个项目主要功能是为typora增加一个自定义图床欢迎提出issues和pr,如果闲的没事会考虑增加一个web界面来上传图片......
  • BOSHIDA DC电源模块负载情况的原因
    BOSHIDADC电源模块负载情况的原因BOSHIDADC电源模块负载情况通常是指在实际应用中,所使用的电源模块的实际输出负载比设计参数有所不同的情况。这种情况很常见,可能是因为以下几个方面的原因: 1.设计参数不准确在设计电源模块时,如果设计参数不准确,可能会导致输出电流、电压等......
  • python实现简单的爬虫功能
    前言Python是一种广泛应用于爬虫的高级编程语言,它提供了许多强大的库和框架,可以轻松地创建自己的爬虫程序。在本文中,我们将介绍如何使用Python实现简单的爬虫功能,并提供相关的代码实例。如何实现简单的爬虫1.导入必要的库和模块在编写Python爬虫时,我们需要使用许多库和模块,其......
  • Nginx - HTTP模块
    接收请求Nginx在接收到请求头中的Host字段时,会和conf里面的server_name进行匹配,匹配上了之后,server_name的其他指令块就可以使用了。HTTP请求的11个阶段11个阶段POST_READrealipSERVER_REWRITEFIND_CONFIGREWRITEPOST_REWRITEPREACCESSlimit_conn,limit_reqACCES......
  • python实现简单的爬虫功能
    前言Python是一种广泛应用于爬虫的高级编程语言,它提供了许多强大的库和框架,可以轻松地创建自己的爬虫程序。在本文中,我们将介绍如何使用Python实现简单的爬虫功能,并提供相关的代码实例。如何实现简单的爬虫1.导入必要的库和模块在编写Python爬虫时,我们需要使用许多库和模块,其中......
  • Python爬虫在电商数据挖掘中的应用
    作为一名长期扎根在爬虫行业的专业的技术员,我今天要和大家分享一些有关Python爬虫在电商数据挖掘中的应用与案例分析。在如今数字化的时代,电商数据蕴含着丰富的信息,通过使用爬虫技术,我们可以轻松获取电商网站上的产品信息、用户评论等数据,为商家和消费者提供更好的决策依据。在本文......