Python成为专业人士笔记–Enum枚举

本文深入解析Python中的枚举类型,包括其特点、如何创建及使用枚举,以及枚举的迭代方式。同时,介绍了如何避免定义相同值的枚举成员,并提供了Python2.4+版本支持枚举类型的解决方案。

“专业人士笔记”系列目录:

创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!

什么是enum枚举

在python中枚举是一种类(Enum,IntEnum),存放在enum模块中。枚举类型可以给一组标签赋予一组特定的值。

枚举的特点:

  1. 枚举类中不能存在相同的标签名
  2. 枚举是可迭代的
  3. 不同的枚举标签可以对应相同的值,但它们都会被视为该值对应第一个标签的别名
  4. 如果要限制定义枚举时,不能定义相同值的成员。可以使用装饰器@unique【要导入unique模块】
  5. 枚举成员之间不能进行大小比较,可进行等值和同一性比较
  6. 枚举成员为单例,不可实例化,不可更改

创建enum (Python 2.4+)

枚举enum原先在python3.4版本以下并不支持,通过安装模块 Python 3.4 Enum后可以反向移植,以支持python2.4+版本:

在python云环境的SSH命令端,输入:

          python -m pip install enum34 
      

即可支持python2.4+版本,详见:pypi.org/project/enum34

接下来创建 enum并返回枚举本身:

         from enum import Enum

 class Color(Enum):
    red = 1
    green = 2
    blue = 3
 print(Color.red)
 #输出Color.red

 print(Color(1))
 #输出 Color.red

 print(Color['red'])
 #输出Color.red
      

如果是定义枚举直接访问值:

        class color():  #注意:参数中未带enum
    YELLOW  = 1
    RED     = 2
    GREEN   = 3
    PINK    = 4
 
# 访问枚举项
print(color.YELLOW) # 1
      

对enum的 迭代

        from enum import Enum

class Color(Enum):
    red = 1
    green = 2
    blue = 3

#迭代枚举类属性
for c in Color:
    print(c);
#输出:
 Color.red
 Color.green
 Color.blue
    
#迭代枚举类的属性成员
for c in Color.__members__:
    print(c)
#输出:
 red
 green
 blue
      

今天的分享就到这里,禁止转载,违者必究!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值