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抓取框架 Scrapy的架构
Aug 12 Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
Jul 24 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
Mar 19 Python
python实现在pandas.DataFrame添加一行
Apr 04 Python
Python实现的网页截图功能【PyQt4与selenium组件】
Jul 12 Python
python中的不可变数据类型与可变数据类型详解
Sep 16 Python
深入学习python多线程与GIL
Aug 26 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
Feb 29 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
Apr 22 Python
Python文件夹批处理操作代码实例
Jul 21 Python
python smtplib发送多个email联系人的实现
Oct 09 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
Dec 14 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
全文搜索和替换
2006/10/09 PHP
php 远程关机操作的代码
2008/12/05 PHP
php从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
PHP连接局域网MYSQL数据库的简单实例
2013/08/26 PHP
php常用文件操作函数汇总
2014/11/22 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
php中引用&的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
stripos函数知识点实例分享
2019/02/11 PHP
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
js获取内联样式的方法
2015/01/27 Javascript
javascript中对变量类型的判断方法
2015/08/09 Javascript
Easyui form combobox省市区三级联动
2016/01/13 Javascript
老生常谈遮罩层 滚动条的问题
2016/04/29 Javascript
AngularJS基础 ng-options 指令详解
2016/08/02 Javascript
vue2项目使用sass的示例代码
2017/06/28 Javascript
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
layui 表单标签的校验方法
2019/09/04 Javascript
js原生map实现的方法总结
2020/01/19 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
原生js实现移动小球(碰撞检测)
2020/12/17 Javascript
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
详解Python命令行解析工具Argparse
2016/04/20 Python
HTML5 canvas 瀑布流文字效果的示例代码
2018/01/31 HTML / CSS
英国领先的露营和露营车品牌之一:OLPRO
2019/08/06 全球购物
妇科医生自荐信
2013/11/05 职场文书
本科生职业生涯规划书范文
2014/01/21 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
学生会部长竞聘书
2014/03/31 职场文书
实习生岗位职责
2014/04/12 职场文书
导师评语大全
2014/04/26 职场文书
升职自荐信范文
2015/03/27 职场文书
开除通知书范本
2015/04/25 职场文书
2015年手术室工作总结
2015/05/11 职场文书
浅谈Python类的单继承相关知识
2021/05/12 Python
Java线程的6种状态与生命周期
2022/05/11 Java/Android