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中的with...as用法介绍
May 28 Python
python中reduce()函数的使用方法示例
Sep 29 Python
详解python字节码
Feb 07 Python
Python3实现获取图片文字里中文的方法分析
Dec 13 Python
python在回调函数中获取返回值的方法
Feb 22 Python
Python实现图片转字符画的代码实例
Feb 22 Python
远程部署工具Fabric详解(支持Python3)
Jul 04 Python
Anconda环境下Vscode安装Python的方法详解
Mar 29 Python
Python打印不合法的文件名
Jul 31 Python
python切片作为占位符使用实例讲解
Feb 17 Python
Django利用AJAX技术实现博文实时搜索
May 06 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文件压缩之PHPZip类用法实例
2015/06/18 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
PDO::quote讲解
2019/01/29 PHP
JS 实现图片直接下载示例代码
2013/07/22 Javascript
javascript scrollTop正解使用方法
2013/11/14 Javascript
javaScript 页面自动加载事件详解
2014/02/10 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
2014/03/13 Javascript
js实现简单选项卡与自动切换效果的方法
2015/04/10 Javascript
Javascript中的迭代、归并方法详解
2016/06/14 Javascript
JS获取url参数、主域名的方法实例分析
2016/08/03 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
正则中的回溯定义与用法分析【JS与java实现】
2016/12/27 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
JavaScript中Math对象的方法介绍
2017/01/05 Javascript
VueCli3构建TS项目的方法步骤
2018/11/07 Javascript
jquery层次选择器的介绍
2019/01/18 jQuery
微信小程序学习笔记之本地数据缓存功能详解
2019/03/29 Javascript
详解Node.js异步处理的各种写法
2019/06/09 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
jquery绑定事件 bind和on的用法与区别分析
2020/05/22 jQuery
详解VUE中的插值( Interpolation)语法
2020/10/18 Javascript
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
详解python 发送邮件实例代码
2016/12/22 Python
详解python datetime模块
2020/08/17 Python
汤米巴哈马官方网站:Tommy Bahama
2017/05/13 全球购物
英国女士家居服网站:hush
2017/08/09 全球购物
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
德国BA保镖药房中文网:Bodyguard Apotheke
2021/03/09 全球购物
项目经理的岗位职责
2013/11/23 职场文书
环保建议书600字
2014/05/14 职场文书
电气自动化求职信
2014/06/24 职场文书
2014年食堂工作总结
2014/11/20 职场文书
2014年应急工作总结
2014/12/11 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
导游词幽默开场白
2019/06/26 职场文书
对PyTorch中inplace字段的全面理解
2021/05/22 Python