python模拟enum枚举类型的方法小结


Posted in Python onApril 30, 2015

本文实例总结了python模拟enum枚举类型的方法。分享给大家供大家参考。具体分析如下:

python中没有enum枚举类型,可能python认为这玩意压根就没用,下面列举了三种方法模拟enum枚举类型

方法1. 使用自定义类

class Numbers(object):
  ONE = 1
  TWO = 2
  THREE = 3
assert Numbers.ONE == 1
assert Numbers.TWO == 2
assert Numbers.THREE == 3

方法2:使用函数动态创建类

def enum(**enums):
  return type('Enum', (object,), enums)
Numbers = enum(ONE=1, TWO=2, THREE=3)
assert Numbers.ONE == 1
assert Numbers.TWO == 2
assert Numbers.THREE == 3

方法3:创建一个从python的集合扩展来的对象

class Enum(set):
  def __getattr__(self, name):
    if name in self:
      return name
    raise AttributeError
Numbers = Enum( "ONE TWO THREE".split() )
error = False
try:
  print Numbers.ONE
  print Numbers.TWO
  print Numbers.THREE
except:
  error = True
assert error == False
try:
  print Numbers.FOUR
except:
  error = True
assert error == True

希望本文所述对大家的python程序设计有所帮助。

Python 相关文章推荐
深入理解python中的浅拷贝和深拷贝
May 30 Python
Python第三方库xlrd/xlwt的安装与读写Excel表格
Jan 21 Python
Python 私有函数的实例详解
Sep 11 Python
一文总结学习Python的14张思维导图
Oct 17 Python
详解python OpenCV学习笔记之直方图均衡化
Feb 08 Python
python3 requests中使用ip代理池随机生成ip的实例
May 07 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
Oct 24 Python
python实现从尾到头打印单链表操作示例
Feb 22 Python
基于Python fminunc 的替代方法
Feb 29 Python
10行Python代码实现Web自动化管控的示例代码
Aug 14 Python
Python Unittest原理及基本使用方法
Nov 06 Python
Python中的协程(Coroutine)操作模块(greenlet、gevent)
May 30 Python
python中随机函数random用法实例
Apr 30 #Python
python使用mailbox打印电子邮件的方法
Apr 30 #Python
用Python实现服务器中只重载被修改的进程的方法
Apr 30 #Python
python同时给两个收件人发送邮件的方法
Apr 30 #Python
python通过邮件服务器端口发送邮件的方法
Apr 30 #Python
在Python的web框架中中编写日志列表的教程
Apr 30 #Python
python登录pop3邮件服务器接收邮件的方法
Apr 30 #Python
You might like
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
PHP实现批量修改文件名的方法示例
2019/09/18 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
2019/10/18 PHP
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
js 多浏览器分别判断代码
2010/04/01 Javascript
JQUERY1.6 使用方法四 检测浏览器
2011/11/23 Javascript
js确定对象类型方法
2012/03/30 Javascript
js 操作select和option常用代码整理
2012/12/13 Javascript
onmouseover和onmouseout的一些问题思考
2013/08/14 Javascript
js实现的后台左侧管理菜单代码
2015/09/11 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
javascript基础知识分享之类与函数化
2016/02/13 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
Flask中获取小程序Request数据的两种方法
2017/05/12 Javascript
vue打包后显示空白正确处理方法
2017/11/01 Javascript
jQuery实现判断上传图片类型和大小的方法示例
2018/04/11 jQuery
Vue中props的使用详解
2018/06/15 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
Python中的pass语句使用方法讲解
2015/05/14 Python
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
python字符串过滤性能比较5种方法
2017/06/22 Python
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
利用python numpy+matplotlib绘制股票k线图的方法
2019/06/26 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
2019/12/26 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
python神经网络编程实现手写数字识别
2020/05/27 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
巧用 CSS3的webkit-box-reflect 倒影实现各类动效
2021/03/05 HTML / CSS
激光脱毛、蓝光和护肤:Tria Beauty
2019/03/28 全球购物
英国伦敦的睡衣品牌:Asceno
2019/10/06 全球购物
Python中pass语句的作用是什么
2016/06/01 面试题
护理专科自荐书范文
2014/02/18 职场文书
《风筝》教学反思
2014/04/10 职场文书
房地产活动策划方案
2014/05/14 职场文书