enum -- 枚举(三)

前情提示: 测试代码中,右尖括号(>)表示命令行中输入的命令; 单独一行并以井字符(#)开头的为输出内容; 库的导入仅在本文的第一个测试代码中展现,其他代码块均省略库的导入代码。

  • 系统类型: Windows 10
  • python 版本: Python 3.9.0

前两篇文章详解了枚举模块中的四个枚举类和自定义枚举类及其相关内容,没看过的小伙伴可以通过传送门点击进入前两篇文章阅读。枚举模块的最后一篇来更加深入的了解一下比较深入并且不常用的一些知识点。

传送门

enum – 枚举(一)

enum – 枚举(二)

enum – 枚举(三)

不重要的枚举成员的值

在某些场景中,人们并不关心枚举成员的值是什么,可以使用下列几种方法定义枚举:

  • 使用 enum.auto() 函数作为枚举成员的值
  • 使用 object() 作为枚举成员的值
  • 使用描述性的字符作为枚举成员的值,同时做到了可进一步解释此枚举成员
  • 使用空元组作为值,并在自定义的 __new__() 中重新定义枚举成员的值(只要不重复即可)

看完以上的列举,这种实现这种需求并不局限于上面几种方法,只要最终枚举成员的值不重复即可,比如自定义一个随机生成字符串的函数。

import enum
import pickle  # 封存


'''enum.auto()'''
class TestA(enum.Enum):
    A = enum.auto()
    B = enum.auto()

'''object()'''
class TestB(enum.Enum):
    A = object()
    B = object()

'''描述字符串'''
class TestC(enum.Enum):
    A = '字母A'
    B = '字母B'

'''元组, 并自定义 __new__()'''
class TestD(enum.Enum):
    A = ()
    B = ()

    def __new__(cls, *args):
        '''获取当前枚举成员数并加一, 将结果赋值给新定义的枚举成员'''
        value = len(cls.__members__) +
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值