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 七种邮件内容发送方法实例
Apr 22 Python
python求列表交集的方法汇总
Nov 10 Python
Python json模块使用实例
Apr 11 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
Jun 20 Python
Python探索之创建二叉树
Oct 25 Python
python搭建服务器实现两个Android客户端间收发消息
Apr 12 Python
对numpy中数组转置的求解以及向量内积计算方法
Oct 31 Python
python binascii 进制转换实例
Jun 12 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
Oct 24 Python
Selenium基于PIL实现拼接滚动截图
Apr 10 Python
python中upper是做什么用的
Jul 20 Python
python爬虫请求头设置代码
Jul 28 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
PHP通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
php生成缩略图填充白边(等比缩略图方案)
2013/12/25 PHP
使用YUI+Ant 实现JS CSS压缩
2014/09/02 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
2019/10/18 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
纯JavaScript实现的完美渐变弹出层效果代码
2010/04/02 Javascript
jQuery实现的类flash菜单效果代码
2010/05/17 Javascript
jquery form表单提交插件asp.net后台中文解码
2010/06/12 Javascript
jQuery 定时局部刷新(setInterval)
2010/11/19 Javascript
js函数调用常用方法详解
2012/12/03 Javascript
如何让页面加载完成后执行js
2013/06/26 Javascript
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
JavaScript实现的一个日期格式化函数分享
2014/12/06 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
layui实现点击按钮给table添加一行
2018/08/10 Javascript
angular6 填坑之sdk的方法
2018/12/27 Javascript
Jquery属性的获取/设置及样式添加/删除操作技巧分析
2019/12/23 jQuery
在vue中实现清除echarts上次保留的数据(亲测有效)
2020/09/09 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
[02:40]DOTA2英雄基础教程 炼金术士
2013/12/23 DOTA
使用python统计文件行数示例分享
2014/02/21 Python
python实现模拟按键,自动翻页看u17漫画
2015/03/17 Python
python通过smpt发送邮件的方法
2015/04/30 Python
在Pycharm中自动添加时间日期作者等信息的方法
2019/01/16 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
python opencv 简单阈值算法的实现
2019/08/04 Python
QML使用Python的函数过程解析
2019/09/26 Python
Python基于WordCloud制作词云图
2019/11/29 Python
Python代码注释规范代码实例解析
2020/08/14 Python
HTML5+CSS3绘制锯齿状的矩形
2016/03/01 HTML / CSS
维护民族团结演讲稿
2014/08/27 职场文书
优秀小学生事迹材料
2014/12/26 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
MySQL去除密码登录告警的方法
2022/04/20 MySQL
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技