首页 > 其他分享 >enum模块(枚举类型)

enum模块(枚举类型)

时间:2025-01-11 18:34:11浏览次数:1  
标签:enum MONDAY Enum 枚举 模块 print Day

enum模块: python enum模块提供了枚举功能。有些编程语言是内置了枚举类型,但python没有内置,只是用enum模块里的Enum类来实现类似功能。
如果不使用枚举,我们一般会采用定义常量的方式来处理。比如下面代码:
RED, GREEN, YELLOW = range(3)

下面演示了一个常见的enum类的创建:

from enum import Enum

class Day(Enum):
    MONDAY = 1
    TUESDAY = 2
    WEDNESDAY = 3
    THURSDAY = 4
    FRIDAY = 5
    SATURDAY = 6
    SUNDAY = 7

print(list(Day))

# [<Day.MONDAY: 1>, <Day.TUESDAY: 2>, <Day.WEDNESDAY: 3>, <Day.THURSDAY: 4>, <Day.FRIDAY: 5>, <Day.SATURDAY: 6>, <Day.SUNDAY: 7>]

print(type(Day))  # <class 'enum.EnumType'>
print(type(Day.MONDAY))  # <enum 'Day'>
print(Day.MONDAY)  # Day.MONDAY

枚举类型是单例模式,类中的每个成员都是该枚举类的一个实例。枚举类一旦创建,其成员将不可变。包括不能增加或减少,也不能重新赋值。
Day.MONDAY = 0 这样的代码会报错。

还可以像下面这样简单的对其成员赋值,一旦类创建好后,这些类成员就是这个类的实例。

from enum import Enum

class Season(Enum):
    WINTER, SPRING, SUMMER, FALL = range(1, 5)

标签:enum,MONDAY,Enum,枚举,模块,print,Day
From: https://www.cnblogs.com/rolandhe/p/18666081

相关文章

  • 手戳usb转串口芯片cp2102模块——理论知识
    一、简介 CP2102是一个USB转串行通信接口的芯片,常用于将USB接口转换为常见的串口接口(RS-232、TTL等)。它通常用于嵌入式系统、数据传输以及外设控制等领域。以下内容基于电脑通过cp2102与esp32进行串口通信(比如烧录程序、数据发送与接受)的情景讲述。二、讲述以上......
  • npm如何对模块进行安装与卸载?
    在前端开发中,npm(NodePackageManager)是一个非常重要的工具,它允许开发者安装、卸载和管理Node.js模块。以下是关于如何使用npm进行模块的安装与卸载的详细步骤:安装模块本地安装:打开命令行工具(如Terminal、CommandPrompt或PowerShell)。导航到项目目录。运行npminstall<......
  • npm如何对模块进行升级和安装?
    在前端开发中,npm(NodePackageManager)是一个非常重要的工具,用于安装、升级和管理JavaScript库和模块。以下是关于如何使用npm进行模块升级和安装的详细步骤:安装模块初始化项目:在开始安装模块之前,通常需要先初始化一个项目。这可以通过运行npminit命令来完成,该命令会引导你填......
  • 创建maven多模块项目
    创建Maven父模块创建项目项目目录结构、pom.xml文件在pom.xml文件中配置打包类型为pom创建子模块common选中项目,鼠标右键,依次选择“New→Module”项目pom.xml文件,可以看到parent标签里的内容,表示父模块的信息。在pom.xml文件中配置打包类型为jar(非必须,可......
  • YOLOv11改进策略【独家融合改进】| AFPN渐进式自适应特征金字塔 + 注意力机制,适用专栏
    一、本文介绍本文利用AFPN和注意力模块对YOLOv11的网络模型进行优化提升。本文以SimAM注意力模块为例,目的是让网络能够学习到更深层的语义信息,并结合AFPN的渐近式融合及自适应空间融合操作,逐步整合不同层级特征,有效避免非相邻层级间因语义差距过大导致的信息丢失或降级......
  • 使用chai3d-GEL模块进行软体模型力反馈仿真的一点碎片化记录
    在要模拟的网格模型中手动添加节点或者对于形状比较复杂的模型使用TetGen之类的网格划分程序自动添加节点和连接;然后设置合理的仿真参数(质量、刚度、重力、时间步长...)骨架驱动:SkeletonModel 使用骨架结构来表示变形体。骨架由一系列节点(cGELSkeletonNode)和连接这些节点的弹簧(c......
  • ISP各模块功能介绍和图像成像过程
    --------声明,本文为转载整理-------ISP各个模块功能介绍图像成像过程:景物通过Lens生成的光学图像投射到sensor表面上,经过光电转换为模拟电信号,消噪声后经过A/D转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理。所以,从sensor端过来的图像......
  • Vue3 hook 函数模块化 类似vue2 mixin
    1、优点代码功能模块化,复用代码2、建立新建hooks文件夹,在src下src/hooks/use功能.js3、案例a、模块化src/hooks/usepoint.jsimport{reactive,onMounted,onBeforeUnmount}from'vue';exportdefaultfunction(){letponint=reactive({x:0,......
  • (即插即用模块-Attention部分) 三十四、(2022) FACMA 频率感知跨通道注意力
    文章目录1、Frequency-AwareCross-ModalityAttention2、WeightedCross-ModalityFusionmodule3、代码实现paper:FCMNet:Frequency-awarecross-modalityattentionnetworksforRGB-DsalientobjectdetectionCode:https://github.com/XiaoJinNK/FCMNet1、......
  • (即插即用模块-Attention部分) 三十三、(2021) SPA 显著位置注意力
    文章目录1、SalientPositionsAttention2、代码实现paper:SalientPositionsbasedAttentionNetworkforImageClassificationCode:https://github.com/likyoo/SPANet1、SalientPositionsAttention在现有的自注意力机制中,其建模长距离依赖关系方面表现出色......