Python枚举(Enum)技巧,你值得了解
xsobi 2025-04-24 10:02 25 浏览
枚举(Enum)提供了更清晰、结构化的方式来定义常量。通过为枚举添加行为、自动分配值和存储额外数据,可以提升代码的可读性、可维护性,并与数据库结合使用时,使用字符串代替数字能简化调试和查询。
Python中的枚举(Enum)
枚举让你以结构化的方式定义命名常量。比如:
这让代码的可读性立刻提升。
为枚举添加行为
大多数人只停留在这里,他们仅仅将枚举用于存储值,错过了其中一个最好的部分——你可以为枚举添加方法。没有到处重复角色检查,而是将逻辑移到了枚举本身:
这样更简洁,维护起来也更容易。如果需要为新角色添加编辑权限,只需更新枚举——不再需要在多个文件中找寻条件。
自动分配值
手动为枚举分配数字感觉……有些不必要。Python 提供了一个内建的方式来处理这个问题:
这会自动将 1、2、3 分配给角色——这样我就不需要再考虑数字了。
带有额外数据的枚举
有一段时间,我意识到我需要的不仅仅是一个名称——角色还需要不同的权限和描述。于是,我将这些信息嵌入到枚举中,而不是管理单独的字典:
不需要单独的映射。所有信息都在一起,使代码更易于阅读和扩展。
枚举与数据库
如果需要将枚举存储在数据库中,使用字符串而不是数字。
这样,数据库中保存的不是数字 1,而是 "admin"。这样做能让调试和查询变得更容易。
相关推荐
- 适合在企业网站展示企业发展历程的时间轴滑动特效源码
-
大家好,今天给大家介绍一款,JavaScript实现的适合在企业网站展示企业发展历程的滑动特效源码(图1)。送给大家哦,获取方式在本文末尾。可以用鼠标左右滑动查看,也可以点击左右按钮查看(图2)源码完...
- 别再花钱请人画了!一个工具就能把照片动漫化,小白也能轻松学会
-
前阵子公司里一个妹子的微信换了个新头像,是用把本人的照片动漫化,有点像抖音爆火的那种漫画脸特效。我感觉很不错,既保留了自己的外貌,也挺有个性的。本来以为是她自己做的,没想到她居然告诉我是花钱请人画的...
- 手机如何制作变年轻特效?手把手教你这几个实用方法
-
现在的图片特效是越来越丰富,我们可以通过各种软件把一张照片上玩出各种花样。特别是最近流行的时光穿梭机特效,能让我们看到从年轻到变老的自己。那么你们知道时光穿梭机特效如何制作吗?下面我就来告诉你们3个很...
- 如何快速查看自己的网站是否被入侵
-
要快速查看自己的网站是否被入侵,可采取以下步骤:一、检查网站内容查看网站主页及其他重要页面,确认是否存在未经授权的更改,如新链接、广告或内容。二、使用在线工具利用第三方服务,如360网站安全检测平...
- 10个免费pr模板下载网站,不用AE也能解决你的片头片尾难题
-
之前有人问我AE太难了,PR能不能做效果,我就推荐了几个小教程,尴尬的是,他说就想用来做片头片尾,emmm……那我就来推荐几个PR模板下载网站吧。以下是我整理的一共有10个PR模板下载网站,其中全站免...
- 高质量特效视频素材,累积14套507.6GB,必备影视后期素材库!
-
收藏一时爽,一直收藏一直爽!欢迎来到宝藏后期资源系列,这是一期非常全面的特效素材,都是好莱坞大片级的特效。这是一期期待已久的特效素材资源,来自知名Bigfilms素材网站。在此之前已经安利了13套...
- CSS 3.0+HTML5.0制作各种网页特效
-
1、C33实现点击图片渐渐放大特效2、CSS3实现图片全屏背景特效3、CSS3实现的鼠标移动到图片上不规则放大3、jQuery+CSS3模拟苹果桌面系统4、CSS3+jQuery照片...
- 太优秀了!高逼格的动画效果,只用 PPT 就能做出来
-
如果你需要做一场演讲、一个述职汇报,又或者是一个毕业答辩,可能都会尝试用PPT做一份演示文稿,来辅助表达。但是,想想开会时,老板在屏幕前做的演示稿,是不是一点也不想看:因为,大多数人做的PPT可能是这...
- 分享7个关于AE的网站
-
今天我分享几个和ae有关的好的网站,希望给对ae有兴趣但却还没入门的人一个帮助。1、http://www.lookae.com/这是一个简洁而美观的网站,提供AE、PR、C4D等的软件、插件、模板的...
- Gif已out !三分钟教你做动图特效
-
360搜索前段时间推出过一款“拍题神器”,引发广泛反响,包括央视、北京卫视等主流媒体相继对此功能进行了报道,正值外界还在对“拍题神器”激烈讨论之际,360移动搜索再推新功能,“玩图”一经推出之后便迅速...
- 推荐几个神级的特效网站
-
随机粒子http://www.spielzeugz.de/html5/liquid-particles-3D对称光绘http://weavesilk.com高亮流体https://paveldogre...
- 让网站动起来的js库,真漂亮,再也不用写复杂的动画了~wow.js
-
前言越来越多的网站特效很漂亮,其中就有一种我很喜欢的动画,就是当滑动到某个元素的时候,元素就是出现动画效果,如:缩放、旋转、滑动等。感觉很漂亮,之前在做企业站的时候,基本上都是自己手写的,有点麻烦而且...
- 垃圾回收日志记录是否会影响应用性能?
-
尽管性能成本极低,但垃圾回收日志提供了宝贵的见解,说明JVM如何在运行时动态管理内存。译自DoesGarbageCollectionLoggingAffectAppPerforman...
- 73人死亡!墨西哥炼油厂发生爆炸!目击者:偷油者当场烧成灰
-
据新华社消息,墨西哥中部伊达尔戈州一处输油管道18日遭遇“偷油”后发生爆炸。截至小编发文,该爆炸造成的死亡人数已升至73人。▲图片截取自CNN;《墨西哥油管爆炸至少73名人员丧生,数十位受伤》这次严重...
- Net平台GC VS JVM垃圾回收
-
前言不知道你平时是否关注程序内存使用情况,我是关注的比较少,正好借着优化本地一个程序的空对比了一下.Net平台垃圾回收和jvm垃圾回收,顺便用dotMemory看了程序运行后的内存快照,生成内存快照后...
- 一周热门
- 最近发表
- 标签列表
-
- grid 设置 (58)
- 移位运算 (48)
- not specified (45)
- 导航栏 (58)
- context xml (46)
- scroll (43)
- dedecms模版 (53)
- c 视频教程下载 (33)
- listview排序 (33)
- characterencodingfilter (33)
- getmonth (34)
- label换行 (33)
- android studio 3 0 (34)
- html转js (35)
- 索引的作用 (33)
- checkedlistbox (34)
- xmlhttp (35)
- mysql更改密码 (34)
- 权限777 (33)
- htmlposition (33)
- 学校网站模板 (34)
- textarea换行 (34)
- 轮播 (34)
- asp net三层架构 (38)
- bash (34)