Python成长记十二(枚举)

【Python】枚举的定义和使用(enum) fdaf 阅读详情
枚举(其实就是一个类)
案例:
        from enum import  Enum
       class VIP(Enum):
           RED = 1
           BLACK = 2
           GREEN = 3

1.枚举和普通类相比有什么优势
  普通类或者字典:(1)可变 (2)没有防止相同标签的功能
  枚举:(1)不可变 (2)有防止相同标签的功能
  比如:
   不可变性:
    from enum import Enum
            class VIP(Enum):
            RED = 1
            BLACK = 2
           GREEN = 3

           VIP.RED=6 #试图改变标签的值 报错

防止标签相同:
    from enum import Enum
            class VIP(Enum):
            RED = 1
            RED = 2 #报错
            GREEN = 3


2. 枚举类型、枚举名与枚举值

  (1)访问枚举值
   from enum import Enum
   class VIP(Enum):
          RED = 1
          BLACK = 2
          GREEN = 3
   print(VIP.RED.value)

结果:1

(2)获取标签名字

    from enum import Enum
    class VIP(Enum):
            RED = 1
            BLACK = 2
            GREEN = 3
    print(VIP.RED.name)

    结果:RED

(3)枚举类型
    from enum import Enum
       class VIP(Enum):
              RED = 1
              BLACK = 2
              GREEN = 3
    print(type(VIP.RED.name))
    print(type(VIP.RED))
    print(VIP['GREEN'])
    结果:
     <class 'str'>
     <enum 'VIP'>

     VIP.GREEN

(4)遍历获取枚举类型
    from enum import Enum
    class VIP(Enum):
            RED = 1
            BLACK = 2
            GREEN = 3
     for v in VIP:
          print(v)
结果:
    VIP.RED
    VIP.BLACK

    VIP.GREEN

3、枚举的比较运算
  (1)类型比较
    例1:
    from enum import Enum
    class VIP(Enum):
           RED = 1
           BLACK = 2
           GREEN = 3
    res = VIP.GREEN == VIP.BLACK
    print(res)

   结果:False

 例2:

 from enum import Enum

     class VIP(Enum):

         RED = 1
         BLACK = 2
         GREEN = 3
 res = VIP.GREEN == VIP.GREEN
 print(res)

结果:True

例3:
   from enum import Enum
         class VIP(Enum):
               RED = 1
               BLACK = 2
               GREEN = 3
   res = VIP.GREEN > VIP.BLACK
   print(res)
   结果:报错


例4:

 from enum import Enum
 class VIP(Enum):
    RED = 1
    BLACK = 2
    GREEN = 3
res = VIP.GREEN is VIP.GREEN #身份比较
print(res)
结果:True

例5:两个枚举的比较
    from enum import Enum
    class VIP(Enum):
         RED = 1
         BLACK = 2
        GREEN = 3

   class VIP2(Enum):
        RED = 1
        BLACK = 2
        GREEN = 3
res = VIP.GREEN == VIP2.GREEN
print(res)
结果:False

4.枚举的注意事项
  (1)两个数值相同
 from enum import Enum
         class VIP(Enum):
               RED = 1
               BLACK = 1
               GREEN = 3
res = VIP.BLACK
print(res)
结果:VIP.RED
建议使用别名:
from enum import Enum
     class VIP(Enum):
            RED = 1
            RED_ALIAS = 1
            GREEN = 3
res = VIP.RED_ALIAS
print(res)

结果:VIP.RED

(2)遍历含有相同值的枚举

    例1:

    from enum import Enum
class VIP(Enum):
    RED = 1
    RED_ALIAS = 1
    GREEN = 3
for v in VIP:
    print(v)
结果:
  VIP.RED

      VIP.GREEN

    例2:
        from enum import Enum
class VIP(Enum):
    RED = 1
    RED_ALIAS = 1
    GREEN = 3
for v in VIP.__members__.items():
    print(v)
     结果:
        ('RED', <VIP.RED: 1>)
('RED_ALIAS', <VIP.RED: 1>)

('GREEN', <VIP.GREEN: 3>)

例3:
 from enum import Enum
class VIP(Enum):
    RED = 1
    RED_ALIAS = 1
    GREEN = 3
for v in VIP.__members__:
    print(v)
结果: RED  RED_ALIAS  GREEN

5.枚举转化
  案例:
    from enum import Enum
class VIP(Enum):
    RED = 1
    RED_ALIAS = 1
    GREEN = 3
a = 1 #将a的类型转换
print(VIP(a))
   结果:VIP.RED

6. IntEnum的使用
  作用:将枚举统限制为数字类型
  案例:
    from enum import IntEnum
    class VIP(IntEnum):
    RED = 1
    RED_ALIAS = 'str'
    GREEN = 3
   结果:报错

7. unique装饰器的使用
  作用:限制枚举值唯一
  案例:
   from enum import unique
@unique
class VIP(IntEnum):
    RED = 1
    RED_ALIAS = 1
    GREEN = 3
   结果:报错

 总结:枚举是一种单例模式,不需实例化
flowable表中文注释-表结构-主要表结构字段注释-sql脚本 flowable表结构中文注释,主要表结构字段注释,sql执行脚本,包含MySQL版和Oracle版sql脚本。 阅读详情

相关推荐

cocos2dx lua + protobuf

vs 2015 cocos2dx 3.10  lua  protobuf1. 下载 protobuf 源码     https://github.com/bnnswyp/protobuf/tree/master/protobuf-2.5.0    解压后的文件列表如下所示         其中 vsprojects 文件夹为 protobuf 的vs 工程2. 打开 protobuf.sln 编译...

u014486706的博客 2163

Python学习笔记11——枚举

from enum import Enum from enum import unique # Python定义枚举类型 Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')) for name, member in Month.__m...

Loong的博客 267

Pcileech(DMA)开源项目简述

希望大DMA家能正确认识FPGA,正确使用DMA技术,对于市场上各类伪装成花里胡哨设备的FPGA板卡它的本质是不会变的,不要上当受骗。

2301_79773847的博客 5962

python 枚举(enum)

python

zhaoxi_1988的博客 3552

傻白入门芯片设计,芯片键合(Die Bonding)(四)

傻白入门芯片设计,芯片键合(Die Bonding)(四) 引线键合、倒装芯片键合、管脚贴合技术

qq_46675545的博客 3万+

论文阅读笔记(一)细粒度图像检索

0、参考文献 [1]见微知著 http://geek.youkuaiyun.com/news/detail/191718 [2]Xiu-Shen Wei 《Selective Convolutional Descriptor Aggregation for Fine-Grained Image Retrieval》 [3]Lingxi Xie 《Fine-Grained Image Search》 1...

huang2818138的博客 1万+

python枚举

1.什么是枚举 在python中枚举是一种类(Enum,IntEnum),存放在enum模块中。枚举类型可以给一组标签赋予一组特定的值。 枚举的特点 枚举的特点: 枚举类中不能存在相同的标签名 枚举是可迭代的 不同的枚举标签可以对应相同的值,但它们都会被视为该值对应第一个标签的别名 如果要限制定义枚举时,不能定义相同值的成员。可以使用装饰器@unique【要导入unique模块】 枚举成员之间...

shifengboy的博客 1455

华为自研 ERP、Oracle EBS 与 SAP 上线时系统配置思路设计差异深度分析

本文对比分析了华为自研ERP、Oracle EBS和SAP S/4HANA三大ERP系统在上线配置思路上的核心差异。从架构设计看,华为采用分布式微服务架构,SAP采用分层服务架构,Oracle采用集中式一体化架构;在模块配置上,华为以业务场景为导向,SAP基于行业模板,Oracle强调模块独立性;数据迁移方面,华为侧重业务规则清洗,SAP注重数据质量监控,Oracle依赖标准化工具;流程适配上,华为系统随流程调整,SAP在框架内优化,Oracle需定制开发;定制开发模式差异明显,华为采用插件化扩展,SAP使

金牌架构师 1454

Python枚举类如何处理重复名称?

这是因为Python枚举类中的名称是唯一的,当我们定义了两个名称相同的枚举值时,后面的定义会覆盖前面的定义。本文从多个角度分析了Python枚举类如何处理重复名称的问题,包括Python枚举类的定义和使用、枚举类中的重复名称问题、名称重复检查以及解决方案等方面。上面的代码中,我们在定义Color枚举类时使用了@unique装饰器,这个装饰器会检查枚举类中的名称是否重复,如果重复就会抛出ValueError异常。在上面的例子中,我们可以看到枚举类中的名称是唯一的,也就是说不能有重复的名称。

m0_59236127的博客 345

STM32开发 -- LIS3DH三轴加速度计开发详解

这次要讲一下LIS3DH三轴加速度计的开发使用,之前是有讲过 MPU6050开发 的,但当时是在Linux下做的。额,还是个半成品,哈哈。现在手边有STM32的开发板,可以实实在在的来实现以下卡尔曼滤波了。 一、LIS3DH初识 依照惯例,先看一下手册,大致先了解一下,LIS3DH是什么模块。 下载:LIS3DH datasheet 1、描述 LIS3DH是一款超低功耗高性能三轴线性加速度计,属于...

不积跬步,无以至千里 2万+

29、几何形态测量学在蝴蝶翅膀研究中的应用

本博客介绍了几何形态测量学在花斑木蛱蝶(Pararge aegeria)翅膀研究中的应用,探讨了环境因素对蝴蝶翅膀大小和形状的影响。通过选择合适的地标并采用Procrustes分析方法,研究揭示了不同景观类型下翅膀形状的差异及其潜在的适应性意义。文章还讨论了发育可塑性在飞行形态变异中的作用,并比较了几何形态测量学与其他传统方法的优势。最后提出了未来研究方向,包括多因素综合分析、发育机制探索及长期生态监测,为理解蝴蝶的适应性进化提供了重要线索。

ff678的博客 107

【自记】Python 枚举 (Enum) 完全指南

Python 3.4+ 标准库提供 enum 模块,其中 Enum 类是所有枚举类型的基类。通过继承 Enum,我们可以定义自己的枚举类,每个枚举成员都是类的实例,具备 “名称(name)” 和 “值(value)” 两个核心属性。# 定义“支付方式”枚举WECHAT = 1 # 微信支付,值为1ALIPAY = 2 # 支付宝支付,值为2BANK_CARD = 3 # 银行卡支付,值为3基础枚举满足大部分场景,但通过重写方法,我们可以实现更灵活的需求。

2301_77449734的博客 1905

【OpenFOAM】-olaFlow-算例6- waveFloatingObject

波浪作用下的浮体的刚体运动,属于流固耦合(FSI)问题

ou_no的博客 3539

python成长技能之枚举类

首先,你需要从enum模块中导入Enum类,然后继承Enum来定义自己的枚举类。每个枚举成员自动获得一个值,这个值通常是它们在类定义中的顺序RED = 1GREEN = 2BLUE = 3在这个例子中,ColorREDGREEN和BLUE,分别对应值1、2和3可以给枚举成员添加额外的方法或属性,以满足特定的需求FAILED = 3return "任务正在等待处理"return "任务已完成"else:return "任务失败"

m0_58878709的博客 690

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【Python系列】 Python 中的枚举使用

在编程中,枚举(Enumerations)是一种特殊的数据类型,它允许为一组相关的常量定义一个名称。在 Python 中,枚举的使用可以显著提高代码的可读性和维护性。Python 中的枚举是一个非常有用的特性,它不仅可以提高代码的可读性和维护性,还可以提供类型安全和便于维护的优势。掌握枚举的使用,将有助于编写更加健壮和易于维护的代码。在实际编程中,合理地使用枚举可以大大提升代码的质量。无论是在处理状态、配置选项还是错误代码,枚举都能提供一种清晰和有效的方式来管理这些值。👍🏻呗。

优快云站内信: https://i.youkuaiyun.com/#/msg/chat/qyj19920704 2万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

python中枚举类的理解

读了两篇文章后总结了关于python中枚举类的理解 枚举是啥、为什么枚举、如何定义及使用枚举、枚举类和普通类的区别

qq_40967086的博客 3754

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Python基础:枚举类

但有些时候我们需要控制枚举的类型,那么我们可以 Enum 派生出自定义类来满足这种需要。# @unique 装饰器可以帮助我们检查保证没有重复值@unique输出的结果如下:通过上面的例子,可以知道枚举模块定义了具有迭代 (interator) 和比较(comparison) 功能的枚举类型。它可以用来为值创建明确定义的符号,而不是使用具体的整数或字符串。

在技术的广袤天地里,本博客如精准罗盘。剖析前沿科技,深掘代码奥秘,以精炼笔触,带您穿越复杂技术迷宫,速达知识彼岸。 2148

python枚举详解

一. 枚举的定义 首先,定义枚举要导入enum模块。 枚举定义用class关键字,继承Enum类。 用于定义枚举的class和定义类的class是有区别    示例代码: from enum import Enum class Color(Enum): red = 1 orange = 2 yellow = 3 green = 4 blue = 5 ...

python学习者的博客 8273

python:枚举类

python实际开发中,需要定义类型时,一般是使用一组整数或者字符串来表示。如果使用常规的定义方式,非常容易被外部修改,Python3.4后,增加了枚举类的使用,就是为了解决这种场景而设计的。python枚举适用场景:值有限且固定(不希望被轻易或随意修改)的数据类型。Java也有枚举类的使用,使用关键字enum实现,而python一般是通过提供的Enum类继承实现的(python类支持多继承,java为类单继承)。

a232884c的博客 2619

Python 基础(十五):枚举

枚举有什么用?

Python小二 6570

《强大的 Python 枚举指南》

enum – 枚举支持枚举(简称枚举)是一种数据类型,允许定义一组命名值。它们被称为枚举,因为枚举类型包含多个可能的成员,并且可以枚举它们。例如,这些可以是星期几:周一(1)周二(2)周三至周六(3–6)周日(7)或者一年的月份:一月(1)二月(2)三月至十一月(3–11)十二月(12)在这两个例子中,项目根据它们的自然顺序编号,值创建了一个有意义的有序项目列表。然而,有时枚举——尽管名称如此——不必枚举,例如:颜色,例如,红色、绿色、蓝色。

龙哥盟 1115

Python枚举是什么-读懂Python枚举的方法

enum是一组绑定到唯一常数值的符号名称,并且具备可迭代性和可比较性的特性。我们可以使用 enum 创建具有良好定义的标识符,而不是直接使用魔法字符串或整数,也便于开发工程师的代码维护。 创建枚举 我们可以使用class语法创建一个枚举类型,方便我们进行读写,另外,根据函数API的描述定义,我们可以创建一个enum的子类,如下: 1 2 3 4 5 6 7 8 9 from enum impor...

刘馨文博客 2169

Python 枚举【一】

转载自: https://www.cnblogs.com/ucos/p/5896861.html Python 枚举【一】 1. 枚举的定义 首先,定义枚举要导入enum模块。 枚举定义用class关键字,继承Enum类。 用于定义枚举的class和定义类的class是有区别【下一篇博文继续分享】。   示例代码: from enum import Enum class Color(En...

lixixi 785

Python 枚举 类型的详解

Python 枚举 类型详解 一、枚举的优势: Python 的原生类型中并不包含枚举类型。为了提供更好的解决方案,Python 通过在 3.4 版本中添加了enum 标准库。 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合。 枚举类可以方便地表示星期,月份等常数类型,如果你不用枚举类,那么你只能用数字或者字符串。如果你使用数字,用1-7来表示星期数,但一...

Fe_cow的博客 2891

【Python】枚举的使用

枚举是一组符号名称(枚举成员)的集合,枚举成员应该是唯一的、不可变的。在枚举中,可以对成员进行恒等比较,并且枚举本身是可迭代的。

黎明总是如期而至 2887

[python] Python枚举模块enum总结

基础示例。

You and Me 5758
上一篇: Python成长记十一(序列化与反序列化)
下一篇: Python成长记十三(闭包)
Q_Jimmy
博客等级 码龄11年 11粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值